检测使用window.open打开的窗口的onload事件

检测使用window.open打开的窗口的onload事件

window.popup = window.open($(this).attr('href'), 'Ad', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0');
 $(window.popup).onload = function()
        {
                alert("Popup has loaded a page");
        };

这在我尝试过的任何浏览器中都不起作用(IE,Firefox,Chrome)。如何检测窗口中何时加载页面(如iframe onload)?


白猪掌柜的
浏览 2938回答 3
3回答

慕运维8079593

如果弹出窗口的文档来自不同的域,则根本不可能。我错了:如果您拥有这两个域,那么您可以window.postMessagemessage在几乎所有与今天相关的浏览器中使用该事件。如果没有,如果没有从加载到弹出窗口的文档中获得一些帮助,你仍然无法跨浏览器进行这项工作。您需要能够检测加载后弹出窗口中的更改,这可能是弹出页面中的JavaScript在处理自己的load事件时设置的变量,或者您对它有一些控制权的变量你可以在开场白中添加对函数的调用。

手掌心

var myPopup = window.open(...);myPopup.addEventListener('load',myFunction,false);如果您关心IE,请使用以下作为第二行:myPopup [myPopup.addEventListener?'addEventListener':'attachEvent'](   (myPopup.attachEvent?'on':'')+'load',myFunction,false);正如您所看到的,支持IE非常麻烦,应尽可能避免使用。我的意思是,如果您需要支持IE,因为您的受众,无论如何都要这样做。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript