मैं पृष्ठ छोड़ने वाले उपयोगकर्ता पर एक संवाद बॉक्स चला रहा हूं। एकमात्र चीज यह 1 सेकंड के लिए चलती है और गायब हो जाती है? मुझे पता है कि इसे bind('beforeunload')
के साथ करना है, लेकिन संवाद जितना जल्दी आप इसे पढ़ सकते हैं उससे मर जाता है।संवाद बॉक्स 1 सेकंड के लिए चलाता है और गायब हो जाता है?
मैं इसे कैसे होने से रोक सकता हूं?
$(document).ready(function() {
// Append dialog pop-up modem to body of page
$('body').append("<div id='confirmDialog' title='Confirm'><p><span class='ui-icon ui-icon-alert' style='float:left; margin:0 7px 20px 0;'></span>Are you sure you want to leave " + brandName + "? <br /> Your order will not be saved.</p></div>");
// Create Dialog box
$('#confirmDialog').dialog({
autoOpen: false,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
'I am sure': function() {
var href = $(this).dialog('option', 'href', this.href);
window.location.href = href;
},
'Complete my order': function() {
$(this).dialog('close');
}
}
});
// Bind event to Before user leaves page with function parameter e
$(window).bind('beforeunload', function(e) {
// Mozilla takes the
var e = $('#confirmDialog').dialog('open').dialog('option', 'href', this.href);
// For IE and Firefox prior to version 4
if (e){
$('#confirmDialog').dialog('open').dialog('option', 'href', this.href);
}
// For Safari
e.$('#confirmDialog').dialog('open').dialog('option', 'href', this.href);
});
// unbind function if user clicks a link
$('a').click(function(event) {
$(window).unbind();
//event.preventDefault();
//$('#confirmDialog').dialog('option', 'href', this.href).dialog('open');
});
// unbind function if user submits a form
$('form').submit(function() {
$(window).unbind();
});
});
आप 'वापस जाने के लिए FALSE' अन्यथा, घटना' unload' के लिए जारी है और इसके परिणामस्वरूप विंडो बंद हो जाएगी जरूरत है .. – balexandre
बदले में झूठी वापसी के साथ, अधिकांश ब्राउज़र एक डिफ़ॉल्ट संवाद खोलते हैं: "रहें" या "छोड़ें" – benwasd
@ बालेक्सेंड्रे: 'पहले से लोड' से 'झूठी' वापस लौटने से केवल "झूठी" के साथ एक चेतावनी बॉक्स बन जाएगा। –