2009-04-23 5 views
12

जब कोई बच्चा खिड़की बंद हो जाता है तो क्या माता-पिता विंडो अधिसूचित की जा सकती है? (एक अलग डोमेन पर?)जब कोई बच्चा खिड़की बंद हो जाता है तो पैरेंट विंडो को अधिसूचित किया जा सकता है? (एक diff डोमेन पर)

खिड़की के चारों ओर घूमने की कोशिश कर रहा है। विभिन्न डोमेन पर काम नहीं कर रहा है।

क्या मुझे कम से कम अधिसूचित किया जा सकता है जब बच्चे की खिड़की बंद हो जाती है?

उत्तर

13

आपको सीधे विंडो बंद होने की अधिसूचना नहीं दी जा सकती है, लेकिन window.open() द्वारा लौटाए गए विंडो ऑब्जेक्ट संदर्भ पर closed संपत्ति का निरीक्षण करके आप बच्चे की खिड़की बंद कर दी गई हैं।

यहाँ एक उदाहरण चाइल्ड विंडो के 5 सेकंड के भीतर एक चेतावनी मतदान द्वारा बंद किया जा रहा closed संपत्ति को प्रदर्शित करेगा कि बताया गया है:

var win = open('http://www.google.com'); 
var intervalId = setInterval(function() { 
     if (win.closed) { 
      clearInterval(intervalId); 
      alert('Window closed! Hoorah!'); 
     } 
    }, 5000); 
+0

आपको सीधे सूचित नहीं जा सकता बनाने के क्योंकि बाल खिड़की एक अलग डोमेन में है, सही? – Adam

+0

ऐसा इसलिए है क्योंकि कोई उपयुक्त ब्राउज़र ईवेंट नहीं है जिसका उपयोग आप विंडो बंद होने पर काम करने के लिए कर सकते हैं। –

+0

वाह ... बहुत अच्छा आदमी .. एक आकर्षण की तरह काम किया। बहुत बहुत धन्यवाद – BKM

-1

पॉपअप में कोड 1/के दो टुकड़े के साथ एक बेहतर समाधान:

$(window).bind('unload', 
    function(){ 
    window.opener.PopupUnload(window) 
    }) 

2 माता-पिता में/(मुख्य विंडो):

function PopupUnload(wnd){ 
setTimeout(function(){ // setTimeout is for IE 
    if(wnd.closed) 
    alert('You just killed me...') 
    },10) 
} 
इस कोड, कोई समारोह हमेशा के लिए (setInterval() के साथ) कहा जाता है के साथ

और आप करीब है और ताज़ा पॉपअप (पोस्ट/प्राप्त)

(IE8 और FF3 में परीक्षण) के बीच का अंतर

+1

देखें 'माता-पिता और पॉपअप विंडो अलग-अलग से लोड होने पर आपकी' window.opener.PopupUnload' कॉल विफल होने जा रही है क्रॉस साइट स्क्रिप्टिंग प्रतिबंधों के कारण डोमेन। –

संबंधित मुद्दे

 संबंधित मुद्दे