iframe上的onbeforeunload事件在google chrome中未触发,在IE、firefox中有效
如果在iframe中设置了unbeforeunload事件,则在例如单击iframe中的链接时不会触发该事件。它在IE和Firefox中工作(不是Opera,但Opera通常不支持onbeforeunload) 只是想知道,我做错什么了吗?难道这种行为不可能吗?还是谷歌Chrome/webkit中的一个bug?有解决办法吗 代码示例: test.html:iframe上的onbeforeunload事件在google chrome中未触发,在IE、firefox中有效,iframe,google-chrome,onbeforeunload,Iframe,Google Chrome,Onbeforeunload,如果在iframe中设置了unbeforeunload事件,则在例如单击iframe中的链接时不会触发该事件。它在IE和Firefox中工作(不是Opera,但Opera通常不支持onbeforeunload) 只是想知道,我做错什么了吗?难道这种行为不可能吗?还是谷歌Chrome/webkit中的一个bug?有解决办法吗 代码示例: test.html: <html> <body> <p>Main page content</p>
<html>
<body>
<p>Main page content</p>
<script type="text/javascript">
window.onbeforeunload = function() {alert('unloadevent in main window');};
</script>
<iframe id="tpa" src="..test2.html"></iframe>
</body>
</html>
主页内容
window.onbeforeunload=函数(){alert('unloadevent in main window');};
test2.html:
<html>
<body>
<script type="text/javascript">
self.onbeforeunload = function() {alert('unloadevent in frame window');};
</script>
<a href="http://www.google.com/">Link to for instance google</a>
</body>
</html>
self.onbeforeunload=函数(){alert('unloadevent in frame window');};
这似乎是webkit中的一个未解决问题(而且不会很快解决):
如果有人知道解决方法,请告诉我。替代方法可能是在文档级别处理iframe链接中的单击事件,或者预处理iframe页面并更改链接以执行自定义JS处理程序。然后根据您的业务规则抑制click事件的传播。我找到了一个ungentle方法来修复它。 在包含域“a.b.com”的my parentPage中:
window.onbeforeunload=函数(){
window.frames[“OBUI”]。frames[“SubOBUI”]。位置=
“a.b.com/demo.jpg?t=“+(新日期()).getTime();
}
在我的“c.d.com”中:
var somemethods应该在加载时执行:function(){
警报(1);
}
试试看 现在已修复此问题