我不记得上次使用弹出窗口是什么时候,但是:(
我想打开新窗口,当它打开时我想喊“1”。窗口在所有浏览器中打开,但在 IE 11/Edge 中它不会alert()。
<html>
<head>
<script src="//code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
$(document).ready(function(){
$('#button').on('click',function(e){
e.preventDefault();
var win = window.open ('/test.html')
$(win).on('load',function(){
alert ('opened');
});
});
});
</script>
</head>
<body>
<a href="#" id="button">button</a>
</body>
</html>
最佳答案
发生这种情况是因为 IE11(可能还有 Edge)在打开的窗口完成加载之前不会从窗口打开调用返回。您添加的加载事件处理程序不会被调用,因为该事件已经触发。
file:
协议(protocol)文件不断请求许可以允许阻止的内容并导致 IE 崩溃,使用本地主机 node.js/express 服务器恢复测试。
通过在 test.html 中放置一个加载事件监听器来验证结果,其中包含将“测试已加载
”附加到 DIV 元素内容的代码,并将代码放入单击处理程序中以附加“打开的窗口< br>”到同一个DIV,在页面打开时,窗口打开后立即调用。
IE 按顺序报告“测试加载,窗口打开”。 Firefox 在打开的页面中抛出错误,用于登录打开的页面的 DIV 元素尚不存在(如预期)。
如果不知道窗口间访问需要实现什么以及您控制和可以修改哪些文件,则很难提出编码解决方案。了解问题所在应该会有所帮助!
关于javascript - 在 ('load' 上)不适用于 Internet Explorer 11 中打开的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41905092/