javascript - 如何检查子浏览器窗口是否已完成加载?

标签 javascript html

我的页面上有一个链接,会弹出一个新窗口,有时第二个窗口需要很长时间才能加载。 我想禁用父窗口上的链接,直到子窗口完成加载。 我知道我可以让子窗口 onload() 来提醒父窗口,但我不想打扰子窗口,所以我有一个小的 javascript 来轮询子窗口以查看它是否有任何数据,除了它不起作用。 我不能 newwindow.document.getelementbyid 因为我永远无法确定该页面上是否会有任何特定元素。 我只是想看看里面是否有某个地方。

最佳答案

只需为子窗口的load事件添加一个监听器即可。这是一个非常基本的示例

<html>
<head>
<script type="text/javascript">

onload = function()
{
  document.getElementById( 'test' ).onclick = function( event )
  {
    event.preventDefault();
    event.returnValue = false;
    var link = event.target || event.src;
    var childWin = window.open( link.href, 'child', 'width=400,height=300' );
    childWin.onload = function()
    {
      alert( 'child window loaded!' );
    }
  }
}

</script>
</head>
<body>

<a href="test2.html" id="test">test</a>

</body>
</html>

注意:我应该告诉您,只有当您在子级中加载的 URL 与父级属于同一域时,这才有效。浏览器安全模型会阻止您这样做。

关于javascript - 如何检查子浏览器窗口是否已完成加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132537/

相关文章:

javascript - 获取应用无任何操作的时间

html - 使用 CSS3 过渡导航时意外的 CSS 行为

html - flexbox 中的中心垂直对齐

javascript - 创建 HTML5 视频磁贴

javascript - CSS 抑制元素

javascript - 使用 jQuery UI,键盘编辑后无法删除可删除的文本区域

javascript - Onclick div 仅适用于一位用户

c# - 如何从javascript调用dll中的方法?

html - 如果为 "too exact",则选择不起作用

javascript - 如何将外部样式表添加到 svg 文件中?