JavaScript & # 39; beforeunload& # 39;事件不能在ie中工作
JavaScript 'beforeunload' event not working in ie
我需要打开一个弹出窗口,然后关闭弹出窗口(刷新父页面)
jquery 'beforeunload'事件在ie8、ie9中不工作。
我的代码是: /*
* events
* add tallyman
*/
$("div.main form div.tallymanlist").click(function() {
if(gencargo.show_confirm('Add new tallyman?')) {
var windowObject = gencargo.windowOpener(600,1400, "Tallyman",$(this).children().attr("url"));
gencargo.windowParentRefresh(windowObject);
}
});
gencargo对象是内容(窗口打开):
/*
* open window
*/
windowOpener : function (windowHeight, windowWidth, windowName, windowUri) {
var centerWidth = (window.screen.width - windowWidth) / 2;
var centerHeight = (window.screen.height - windowHeight) / 2;
newWindow = window.open(windowUri, windowName, 'resizable=0,width=' + windowWidth +
',height=' + windowHeight +
',left=' + centerWidth +
',top=' + centerHeight);
newWindow.focus();
return newWindow;
},
和
windowParentRefresh : function(object) {
$(object).bind('beforeunload', function () {
object.opener.location.reload();
});
}
关闭窗口事件在ie中不起作用。仅支持FireFox, Chrome, Opera
试试这个:
/*
* reload page
*/
windowParentRefresh: function(object) {
setTimeout(function() {
setTimeout(function() {
$(object).bind('beforeunload', function() {
object.opener.location.reload();
});
}, 1000);
},1);
}
我知道这个问题已经有五年多了,但我最近不得不解决同样的问题。我使用这段代码在Chrome, Firefox, Safari, Opera使用jQuery 3.1.1:
var myWindow = window.open(...);
$(myWindow).on('beforeunload', function () {
...
});
这在IE 11中不起作用。我认为原因是在子窗口完成加载之前不可能进行事件绑定。当我在$().on
行上放置一个断点后发现它工作时,我发现了这一点。在那里中断给了子窗口加载所需的时间。
我是这样解决的:在子窗口的代码中,我添加了这一行:
$(document).ready(function () {
window.childWindowReady = true;
});
然后在父窗口中,使用以下代码:
var myWindow = window.open(...),
windowCheckInterval = setInterval(function () {
if (myWindow.childWindowReady) {
$(myWindow).on('beforeunload', function () {
...
});
clearInterval(windowCheckInterval);
}
}, 500);
这样,我就等到子窗口准备好了,我知道这是因为我的自定义变量已经定义好了。
jQuery API明确表示不绑定到beforeunload,而是直接绑定到window.onbeforeunload。
<script type=”text/javascript”>
window.onbeforeunload = askUser ;
function askUser(){
return "Do you wanna quit?";
}
</script>
相关文章:
- Target=_blank don'我不在mozilla和IE工作
- jQUery Code没有'我不在IE工作
- 为什么这个书签脚本是't在IE工作
- 类构造函数super()没有'我不在IE工作
- onmousemove=null不会'我不在IE工作
- execCommand('另存为',true,'data.csv');不在IE工作
- 努力让第n个有悬停的孩子在IE工作
- Javascript Groovy按钮没有'我不在IE工作
- 属性='值'jquery选择没有'我不在IE工作
- atob不在IE工作
- 将图像附加到富文本编辑器dosen'我不在IE工作
- javascript没有'I don’我一直在IE工作
- 使用插件制作移动滑动导航,但它没有'我不在IE工作
- Video.js没有'我不在FF、IE工作
- dojo on.emit”;点击“;以及“;改变“;不在IE工作
- 为什么这个工具提示没有'不在IE工作吗?错误:应为对象
- document.getElementById('a').click()没有't在IE工作
- 插入符号插件的jquery;我不在IE工作
- 聚合物:点击事件在IE工作,但不是Chrome.如何修复
- 如何使IE工作预期与正则表达式提供的函数参数在拆分函数