تنبيه JavaScript على صفحة الوالدين عند إغلاق الأطفال المنبثقة

StackOverflow https://stackoverflow.com/questions/4254865

  •  27-09-2019
  •  | 
  •  

سؤال

أنا أستخدم طريقة javaScript Window.Open لفتحها لنقول http://www.google.com سيكون دائمًا عنوان URL الخارجي

لقد قمت بتخزين مرجع كائن النافذة في متغير ، والمشكلة هي أن المتغير لا يحصل أبدًا على صفحة الأصل ولا يمكنني تنبيه المستخدم بأنه قد تم إغلاق المنبثقة.

ها هي الرمز

 
        var winFB;
        var winTWt;
        var counterFB = 0;
        var counterTWT = 0;
        var timerFB;
        function openFB() {

            if (counterFB == 0) {
                winFB = window.open("http://www.google.com");
                counterFB = 1;
            }
            if (counterFB > 0) {
                alert(winFB);
                if (winFB == null) {
                    counterFB = 0;
                    clearTimeout(timerFB);
                    alert("Window Closed");
                }
            }
          timerFB= setTimeout("openFB()", 1000);
        }

    

لا يمكنني وضع أي رمز javaScript على نافذة pop up/child.

آمل أن يتمكن شخص ما من مساعدتي في هذا

هل كانت مفيدة؟

المحلول

لا يتم إبطال متغير النافذة عند إغلاقه ، ولكن .closed منشأه هو true, ، لذا فقط قم بتغيير الشيك لتكون هذه الخاصية ، مثل هذا:

var winFB;
var winTWt;
var counterFB = 0;
var counterTWT = 0;
var timerFB;
function openFB() {
    if (counterFB == 0) {
        winFB = window.open("http://www.google.com");
        counterFB = 1;
    }
    if (counterFB > 0) {
        if (winFB.closed) {
            counterFB = 0;
            clearTimeout(timerFB);
            alert("Window Closed");
        }
    }
    timerFB = setTimeout(openFB, 1000);
}

لاحظ أيضا setTimeout() تغيير ، تمرير وظيفة في كلما كان ذلك ممكنا (تقريبا دائماً) بدلاً من سلسلة ، سيكون لديك الكثير من المشكلات في النطاق.

نصائح أخرى

//in the parent
winFB = window.open("http://www.google.com");

//in the child window you can access
var _parent = window.opener.document;

//also use the onunload event in the child window
onunload="doSomething()"

أتمنى أن يمنحك هذا بعض الاتجاه ..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top