يمكنني يطفو على حوار تأكيد عندما يقوم المستخدم تغلق النافذة في سفاري / كروم؟

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

سؤال

في IE وFF، أنا يمكن أن نعلق معالج أحداث إلى onBeforeUnload، وتمرير سلسلة إلى خاصية لهذا الحدث، سوف يرى المستخدم مربع حوار يطلب منه ما إذا كان يريد الاستمرار في "التفريغ" (إما إغلاق النافذة أو التنقل بعيدا).

وسفاري وكروم لا تدعم onBeforeUnload، ومعالج onunload يبدو أن يفوت الأوان. هل هناك طريقة لتكرار نفس الوظائف في سفاري / كروم؟

ملحوظة: أنا لا أسعى للحفاظ على رهينة المستخدم. أعرف أن هذا هو المزعج والامم المتحدة بارد. في الواقع، على موقعي يبذل جهودا كبيرة للسماح للمستخدم الانتقال بحرية، ويكون كل شيء في مكانه عندما يعودون. ومع ذلك، وأنا استضافة مواقع أخرى ب IFrames الداخل، وأحيانا هذه تقرر التخلص مني والاستيلاء على المتصفح، وهو ما أحاول تجنبه.

وشكرا!

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

المحلول

وهذا يعمل تماما بالنسبة لي في كل كروم وسفاري:

<html><body><p>Test</p>
<script>window.onbeforeunload = function() { return "Sure?"; }</script>
</body></html>

وعندما أحاول إغلاق النافذة، أحصل على موجه.

نصائح أخرى

وستاكوفيرفلوو نفسه يستخدم onbeforeunload، وأنه يعمل بشكل جيد بالنسبة لي في سفاري:

function setConfirmUnload(a){window.onbeforeunload=a?function(){return a}:null}

وراجعت في الكروم ويبدو أن تعمل بشكل جيد باستخدام هذا:

<body onunload="alert('x');" onbeforeunload="test1();">

ويتم تغطية هذا السؤال في أكثر قليلا من التفصيل في آخر السؤال ستاكوفيرفلوو أحدث: وضع onbeforeunload على العنصر الأساسي في كروم وإنترنت إكسبلورر باستخدام مسج

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