Chr*_*ini 37 javascript firefox internet-explorer google-chrome popup
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");
};
Run Code Online (Sandbox Code Playgroud)
这在我尝试过的任何浏览器中都不起作用(IE,Firefox,Chrome).如何检测窗口中何时加载页面(如iframe onload)?
Del*_*ani 50
var myPopup = window.open(...);
myPopup.addEventListener('load', myFunction, false);
如果您关心IE,请使用以下作为第二行:
myPopup[myPopup.addEventListener ? 'addEventListener' : 'attachEvent']( (myPopup.attachEvent ? 'on' : '') + 'load', myFunction, false );
正如您所看到的,支持IE非常麻烦,应尽可能避免使用.我的意思是,如果您需要支持IE,因为您的受众,无论如何都要这样做.
如前所述,这个答案的/sf/answers/212162541/又称检测使用window.open解决方案打开的窗口的onload事件是理想的:
javascript: /* IE will use 1 ignore 1 w/ error, FF t'other way 'round */
(function(ow){
ow . addEventListener( 'load', function(){alert("loaded")}, false);
ow . attachEvent('onload', function(){alert("loaded")}, false);
}(window.open(prompt("Where are you going today?",location.href),"snapDown")))
Run Code Online (Sandbox Code Playgroud)
但是,其他评论和答案会产生一些错误的误解,如下所述.
下面的剧本演示了定义的气质时间变化onload.将脚本应用于快速加载,location.href例如file:///和一些慢速站点以查看问题.可以看到任何onload消息或者根本没有消息(通过重新加载已加载的页面,可以看到所有3个变体).还假设正在加载的页面本身并未定义onload会使问题复杂化的事件.
该onload的事件处理程序的定义是绝对不会'弹出窗口的HTML标记内’,虽然他们最终将驻留在的DOM中body...的HTML.
javascript:
window.popup=window.open(location.href,'snapDown');
window.popup.onload=function(){alert("message one ")};
alert("message 1 maybe too soon\n"+window.popup.onload);
window.popup.onload=function(){alert("message two")};
alert("message 2 maybe too late\n"+window.popup.onload);
Run Code Online (Sandbox Code Playgroud)
你可以做什么:
javascript: ...URI javascript:在最近(大约2012年)的浏览器中无效因此,任何页面,几乎无论如何,可以修改如下:
javascript:
if(confirm("wipe out links & anchors?\n"+document.body.innerHTML))
void(document.body.innerHTML=document.body.innerHTML.replace(/<a /g,"< a "))
Run Code Online (Sandbox Code Playgroud)
(差不多......
jar:file:///usr/lib/firefox/omni.ja!/chrome/toolkit/content/global/aboutSupport.xhtml
Mozilla的FF故障排除页面和其他jar档案是例外)
另一个例子:
常规禁用谷歌篡夺目标pg.命中,改变它的rwt功能如下:
javascript:void(rwt=function(unusurpURL){return unusurpURL})
Run Code Online (Sandbox Code Playgroud)
并将其标记为spay google(neuteralize google?)即.它是"固定的".
然后在点击任何google命中之前点击该书签,因此任何这些命中的书签都是干净的,而不是google由它们构成的杂项变态的像差.
完成测试
window.navigator.userAgent=
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0
Run Code Online (Sandbox Code Playgroud)
应该注意的是,addEventListener在Mozilla中只有一个非标准的第四个布尔参数,如果true允许不可信内容触发器被实例化为外部页面.
ref:
element.addEventListener | 文档对象模型(DOM)| MDN:
特权页面和非特权页面之间的交互| 代码片段| MDN:
书签:
检测使用window.open打开的窗口的onload事件
| 归档时间: |
|
| 查看次数: |
118529 次 |
| 最近记录: |