2012-05-16 21 views
11

में पृष्ठ पर रहें चुनते हैं तो फ़ंक्शन को कॉल करने के लिए कैसे करें यदि आप रीफ्रेश हिट करते हैं तो आपको 2 विकल्प के साथ संकेत दिया जाएगा।जावास्क्रिप्ट जब हम क्रोम

  1. छोड़ दो इस पृष्ठ और इस पृष्ठ पर
  2. स्टे

जब मैं इस पेज बटन पर 2. स्टे क्लिक करें यह अपने कस्टम समारोह displayMsg को सक्रिय करना होगा ()

क्या कोई वाई मुझे समाधान प्रदान करते हैं?

<script type="text/javascript"> 
function displayMsg() { 
    alert('my text..'); 
} 
</script> 
<script type="text/javascript"> 
window.onbeforeunload = function(evt) { 
    var message = 'Please Stay on this page and we will show you a secret text.'; 
    if (typeof evt == 'undefined') { 
     evt = window.event; 
    }  
    if (evt) { 
     evt.returnValue = message; 
     return message; 
    } 
    trace(evt); 
} 
</script> 

उत्तर

6

उपयोग परिवर्तन चर के लिए सुन करने के लिए एक टाइमर:

var vals=0; 
function displayMsg() { 
    alert('my text..'); 
} 
window.onbeforeunload = function evens(evt) { 
var message = 'Please Stay on this page and we will show you a secret text.'; 
    if (typeof evt == 'undefined') { 
     evt = window.event; 
    }  
    timedCount(); 
    vals++; 
    if (evt) { 
     evt.returnValue = message ; 
     return message ; 
    } 
    trace(evt); 
} 

function timedCount() 
{ 
t=setTimeout("timedCount()",100); 
if(vals>0) 
{ 
    displayMsg(); 
    clearTimeout(t); 
} 
} 
+0

यह भी [सुनने के लिए परिवर्तनीय-परिवर्तन-इन-जावास्क्रिप्ट-या-jquery] को देखें (http://stackoverflow.com/questions/1759987/listening-for-variable-changes-in-javascript-or -jquery) –

+1

उत्कृष्ट स्क्रिप्ट! मेरे प्रदर्शनMsg() फ़ंक्शन को शामिल करने के लिए समय निकालने के लिए बहुत कुछ धन्यवाद और बिना किसी संशोधन के सीधे उपयोग करना आसान बनाता है :) –

+0

धन्यवाद 'पर्डिक्स', आपका कोड आईई ब्राउज़र पर भी काम करता है! –

4

आप onbeforeunload और onunload घटनाओं के संयोजन का उपयोग कर सकते हैं, पूर्व में एक टाइमर सेट और बाद में उसे साफ़:

var showMsgTimer; 

window.onbeforeunload = function(evt) { 
    var message = 'Please Stay on this page and we will show you a secret text.'; 
    showMsgTimer = window.setTimeout(showMessage, 500); 

    evt = evt || window.evt; 
    evt.returnValue = message; 

    return message; 
} 

window.onunload = function() { 
    clearTimeout(showMsgTimer); 
} 

function showMessage() { 
    alert("You've been trolled!"); 
} 

यह काम करता है क्योंकि onunload घटना कभी नहीं जब उपयोगकर्ता आग पेज पर रहने का विकल्प चुनता है।

+0

सेशन "जब मैं इस पेज बटन पर 2. स्टे क्लिक करें यह अपने कस्टम समारोह displayMsg() को सक्रिय करना होगा", नहीं छोड़ पेज –

+0

@Ravi चाहता है: यदि आप कोड को पढ़ने के लिए या यह परीक्षण किया है, क्या तुम करोगी देखें कि यह वही है जो यह करता है। यदि आप पृष्ठ पर रहना चुनते हैं तो यह एक संदेश दिखाता है। यदि आप छोड़ते हैं, तो ऐसा नहीं होता है। –

+0

मैं सहमत हूं, लेकिन जब आप पृष्ठ को छोड़ने पर क्लिक करेंगे तो यह भी लागू होगा। इसे यहां देखें http://jsfiddle.net/VuPcf/ –

1

कोड की इन पंक्तियों का उपयोग करें, यह ठीक से काम करता है।

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> 
    </script> 
    <script type="text/javascript"> 
    $(function(){ 
    $(window).bind('beforeunload', function(){ 
     return 'Your Data will be lost :('; 
    }); 
    }); 
    </script> 
संबंधित मुद्दे