javascript - نهائيا - منع النوافذ المنبثقة للاندرويد




افتح الصفحة المنبثقة وتحديث الصفحة الرئيسية عند إغلاق النافذة المنبثقة (8)

إذا كان تطبيقك يعمل على متصفح يدعم HTML5. يمكنك استخدام postMessage . المثال الموجود هناك مشابه تمامًا لك.

لقد فتحت نافذة منبثقة بواسطة window.open في JavaScript ، أريد تحديث الصفحة الرئيسية عند إغلاق هذه النافذة المنبثقة. (حدث onclose؟) كيف يمكنني القيام بذلك؟

window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");

انا استعمل هذا:

<script language='javascript'>
var t;
function doLoad() {
t = setTimeout("window.close()",1000);
}

</script>
<script type="text/javascript">
function refreshAndClose() {
    window.opener.location.reload(true);
    window.close();
}
</script>
<body onbeforeunload="refreshAndClose();" onLoad='doLoad()''>

عند إغلاق النافذة ثم تحديث النافذة الرئيسية.


سيعمل التعليمة البرمجية التالية على تحديث وظيفة النافذة الرئيسية:

function ManageQB_PopUp() {
            $(document).ready(function () {
                window.close();
            });
            window.onunload = function () {
                var win = window.opener;
                if (!win.closed) {
                    window.opener.location.reload();
                }
            };
        }

في حالتي فتحت نافذة منبثقة بالضغط على الرابط في الصفحة الرئيسية. لتحديث الوالدين على إغلاق الطفل باستخدام

window.opener.location.reload();

في نافذة الطفل تسبب في إعادة فتح نافذة الطفل (قد يكون بسبب عرض الدولة أظن. تصحيح لي إذا كنت مخطئا). لذلك قررت عدم إعادة تحميل الصفحة في الصفحة الرئيسية وتحميل الصفحة مرة أخرى لتعيين نفس عنوان url لها.

لتجنب فتح النافذة المنبثقة مرة أخرى بعد إغلاق النافذة المنبثقة ، قد يساعد هذا الأمر ،

window.onunload = function(){
    window.opener.location = window.opener.location;};

لا تحتوي النافذة المنبثقة على أي حدث قريب يمكنك الاستماع إليه.

على الجانب الآخر ، هناك خاصية مغلقة تم تعيينها إلى true عند إغلاق الإطار.

يمكنك ضبط مؤقت للتحقق من ذلك العقار المغلق والقيام بذلك على النحو التالي:

var win = window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no");   
var timer = setInterval(function() {   
    if(win.closed) {  
        clearInterval(timer);  
        alert('closed');  
    }  
}, 1000); 

انظر هذا العمل على سبيل المثال Fiddle !


يمكنك استخدام الشفرة التالية في الصفحة الرئيسية.

<script>
    window.onunload = refreshParent;
    function refreshParent() {
      window.opener.location.reload();
    }
</script>

يمكنك الوصول إلى النافذة الأصل باستخدام ' window.opener ' ، لذلك ، اكتب شيئًا كالتالي في نافذة الطفل:

<script>
    window.onunload = refreshParent;
    function refreshParent() {
        window.opener.location.reload();
    }
</script>

جرب هذا

        self.opener.location.reload(); 

افتح الأصل لإطار حالي وأعد تحميل الموقع.







javascript-events