请有人帮助我。
我制作了一个JS(如下所示的target.js),它使iframe如下所示。
我不确定原因,但onload功能在IE 9,8上不起作用。
当我删除脚本标记时,onload函数工作,窗口滚动到锚点。
<body onload="location.hash='#hashparam';">
HTML
<!-- Target part -->
<script params="parameters" src="target.js"></script>
<iframe src="target.html?parameters">
<html>
<head>
</head>
<body>
<script src="target-inner.js"></script>
many iframes which are made by the script tags
</body>
</html>
HTML
</body>
有谁知道原因? 如果您了解它,请教我。
// target-inner.js
isIE = /MSIE/.test(window.navigator.userAgent);
isIE10 = /MSIE 10/.text(window.navigator.userAgent);
if (isIE10 || !isIE) {
doc.clear();
doc.open;
}
doc.write("<html><head></head><body>");
doc.write(text);
doc.write("</body></html>");
if (isIE10 || !isIE) {
return doc.close();
} else {
return;
}
答案 0 :(得分:0)
我找到了原因。
在IE9上,iframe阻止了body onload功能。 然后,在我的脚本中没有带有IE9的document.close()。 因为它,onload函数永远被阻止。 但是,在我的脚本中,如果我在使用IE9的document.write之后添加document.close(),IE9就会被粉碎。 所以我改变了实现方式,我将main函数添加到body onload部分。 它有效。
谢谢fmodos的好意。