2012-07-09 14 views
9

मैं एक पॉपअप विंडो बना रहा हूं जो hello.html पर जाता है। जब मैं पॉपअप विंडो (hello.html) बंद करता हूं तो मैं अपना मूल (मूल पृष्ठ) पुनः लोड करना चाहता हूं। मैं इसे काम करने के लिए प्रतीत नहीं कर सकता, लेकिन मैं करीब हूँ। यहाँ कोड मैं अब तक मुख्य पृष्ठ और hello.html पेज के लिए है ....पॉपअप बंद करने के बाद ताज़ा अभिभावक विंडो

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function open_win() 
{ 
window.open("hello.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, width=400, height=400"); 
} 
</script> 


<script language="JavaScript"> 

function refreshParent() { 
    window.opener.location.href = window.opener.location.href; 

    if (window.opener.hello.html) 

{ 
    window.opener.hello.html.close() 
    } 
    window.close(); 
} 
</script> 


</head> 

<body> 

<script type="text/javascript"> 

var d=new Date(); 
document.write(d); 

</script> 

<form> 
<input type="button" value="Open Window" onclick="open_win()"> 
</form> 
</body> 
</html> 

यहाँ hello.html है ...

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
</script> 
</head> 
<body> 

Hello 

</body> 
</html> 
+0

कृपया इसे जांचें: http://stackoverflow.com/questions/18321323/submit-form-reload-parent-and-close-child/36855748#36855748 किसी की मदद कर सकता है – NoNaMe

उत्तर

11

में unload event की सदस्यता लें है बच्चे की खिड़की और बच्चे की खिड़की से पैरेंट विंडो को यह सूचित करने के लिए कॉल करें कि यह बंद हो रहा है!

संपादित जोड़ा एक कोड नमूना ...

function popupClosing() { 
    alert('About to refresh'); 
    window.location.href = window.location.href; 
} 

var w = window.open("hello.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, width=400, height=400"); 
w.onunload = function() { 
    window.parent.popupClosing() 
}; 
+0

मुझे नहीं पता कि इसका क्या अर्थ है ... –

+0

धन्यवाद .. बहुत बेहतर :) –

3

इस तरह यह करते हैं, बनाने पॉपअप एक अंतराल में अपनी "बंद" स्थिति संपत्ति पर नजर रखने के बाद। लेकिन इस मूल दस्तावेज़ में जोड़ा जाता है:

var pop = window.open("page.html", "popup", 
      "width=800,height=500,scrollbars=0,title='popup'"); 
    pop.focus(); 

    var monitor = setInterval(function() { 

     if (pop.closed) { 
      document.location.reaload() 
     } 

    }, 1000); 
+0

यह काफी बुरा समाधान है, लेकिन यह केवल एकमात्र है जो क्रोम 55.0.2883.87 में मेरे लिए काम करता है। अन्य सभी विधियां एक ऑनक्लिक घटना में ठीक काम करती हैं जो मुझे विश्वास दिलाती है कि क्रोम इसे आकार देने और खिड़की को स्थानांतरित करने के समान ही उपयोगकर्ता द्वारा शुरू की गई कार्रवाइयों के लिए प्रतिबंधित है। – Shaun

2

अपने पॉप अप विंडो में इस जावास्क्रिप्ट कोड डालने का प्रयास करें: जब आप अपने पॉपअप विंडो को बंद

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

/ऑनअनलोड घटना को ट्रिगर किया जाएगा, और window.opener .location.reload() स्रोत (पैरेंट) विंडो को फिर से लोड करेगा।/

1

पॉपअप पास समारोह का प्रयास करें की क्लिक करें घटना पर ...

window.opener.location.reload(true); 
0

कोड का यह टुकड़ा अगर एक नई विंडो window.open सुविधा के साथ पॉप के रूप में अच्छी तरह से काम करता है।

setTimeout(function() { window.opener.location.reload(true); window.close();}, 3000); 
0

अपने पॉपअप विंडो के शीर्षक में इस स्क्रिप्ट रखो:

<script type='text/javascript'> 
window.onunload = function(){ 
window.opener.location.reload();} 
</script> 

यह है जब आप पॉपअप बंद माता पिता खिड़की को फिर से लोड होगा।

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