【转】Firefox下iframe的onload事件有可能无法触发 作者:zhanglili
Firefox下,已经load的document,重新open再write一个iframe,则这个iframe的onload不会执行。
document.write
写入一个iframe,这个iframe包含一个onload属性。iframe的onload处理函数正确执行。
第二层iframe的onload函数没有执行。
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>我去你喵的</title></head><body> <script> var falsefunction if truevar document'<iframe src="about:blank" onload="alert(\'!!\');"><\/iframe>''</body>'</script> <iframe src="about:blank" onload="load(this);"></iframe></body></html>
需要向iframe的文档流写入数据的情况,通常出现在使用一个src为about:blank的iframe元素占位的情况下,因此外层iframe的onload事件没有太大意义。
可以在iframe元素之后内联一段脚本以达到写入iframe的文档流的目的,通过document.getElementsByTagName('iframe')
的最后一个获取该iframe元素。
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>我去你喵的</title></head><body> <iframe src="about:blank"></iframe> <!-- 以下代替onload --> <script> var document'iframe'var 1var document'<iframe src="about:blank" onload="alert(\'!!\');"><\/iframe>''</body>'</script></body></html>