javascript - 在 ('load' 上)不适用于 Internet Explorer 11 中打开的弹出窗口

标签 javascript jquery internet-explorer-11 microsoft-edge window.open

我不记得上次使用弹出窗口是什么时候,但是:(

我想打开新窗口,当它打开时我想喊“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/

相关文章:

javascript - 结果 "join"数组与 php 中的 javascript 中的日期不匹配

jquery - 使用 jQuery 和 css3 的 Coverflow

javascript - jQuery 验证 Uncaught ReferenceError

javascript - <html :hidden> and &lt;input type ="hidden"> on IE11 之间的区别

javascript - JAWS 屏幕阅读器误读了确认对话框消息。 IE11

javascript - 那是缓存还是缓存?

javascript - ThreeJS错误: THREE. FaceNormalsHelper不是构造函数

javascript - 在现有脚本中显示/隐藏 div

javascript - 防止在 setView 之后在 Leaflet 中触发 moveend 事件

javascript - 我可以在 IE11 中从 Web Worker 访问 MSCrypto 吗?