كيف يمكنني التأكد من نافذة المستعرض مفتوحا ، مع جافا سكريبت ؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

أنا فتح نافذة متصفح جديدة من الموقع لبعض الأعضاء.ومع ذلك ، فإن بعض فيما بعد إغلاقه ، أو أنها قد فشلت في البداية لفتح.

هل هناك مقتطف من عادي إلى حد ما جافا سكريبت التي يمكن تشغيلها على كل صفحة لتأكيد ما إذا كان متصفح آخر نافذة مفتوحة ، وإذا لم يكن كذلك ، إلى توفير ارتباط إلى إعادة فتحه ؟

[توضيح:] رمز التحقق هو نافذة مفتوحة سيتم تشغيل على صفحات أخرى - ليس فقط في نفس النافذة و عنوان URL الذي فتحه.تخيل المستخدم تسجيل الدخول ، النافذة (يحاول) مفتوحة ثم تصفح في نفس التبويب/نافذة (أو غيرها) لبعض الوقت قبل أن يغلقوا 2 النافذة (أو أنه لم يفتح) - أريد أن تكون قادرة على إشعار النافذة تم إغلاق بعض الوقت بعد المحاولة الأولى في افتتاح/بعد انها مغلقة, لذلك أنا لست متأكدا من أن التحقق من جافا سكريبت العودة من النافذة.فتح() (مع popup_window_handle.مغلقة) هو استخدامها بسهولة ، أو في الواقع ممكن.

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

المحلول

هذا ممتازة شاملة المادة ("ما يقرب من السيطرة الكاملة على النوافذ المنبثقة") يجب الإجابة على جميع أسئلتك حول جافا سكريبت النوافذ المنبثقة.

"جافا سكريبت 1.1 أيضا عرض النافذة مغلقة مكان الإقامة.باستخدام هذه الخاصية ، فمن الممكن اكتشاف ما إذا كان تم نافذة فتحت و أغلقت بعد ذلك.يمكننا استخدام هذا لتحميل الصفحة مباشرة فتحت نافذة إذا كان لا يزال مفتوحا جافا سكريبت 1.1 تمكين المتصفحات:"

<script language="JavaScript"><!--
function open_main(page) {
    window_handle = window.open(page,'main');
    return false;
}
//--></script>

<script language="JavaScript1.1"><!--
function open_main(page) {
    if (opener && !opener.closed) {
        opener.location.href = page;
    }
    else {
        window_handle = window.open(page,'main');
    }
    return false;
}
//--></script>

<a href="example.htm" onClick="return open_main('example.htm')">example.htm</a>

بالإضافة إلى ذلك: يمكنك الحصول على مقبض الإطار الخلفي في صفحة أخرى من خلال الإشارة إلى منبثقة اسم هذه الطريقة:

window_handle = window.open(page,'myPopupName');

اعتقد في حالتك يجب أن نفكر في طريقة ثابتة لإنشاء أسماء كل النوافذ المنبثقة في جميع أنحاء التطبيق.

نصائح أخرى

var myWin = window.open(...);

if (myWin.closed)
{
    myWin = window.open(...);
}

لا توجد وسيلة عالمية للتحقق من ذلك حيث أن كل مانع النوافذ المنبثقة له سلوك مختلف.على سبيل المثال ، الأوبرا لن يظهر المنبثقة ولكن الأرملة.أغلقت سوف return false كما خلف مسرح الأوبرا الحفاظ على نسخة ظل حظر النافذة فقط في حال كان المستخدم يود أن يرى ذلك على أي حال.

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