0

请任何人帮助我。

我制作了一个 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;
}
4

1 回答 1

0

我找到了原因。

在 IE9 上,iframe 会阻止正文加载功能。然后,在我的脚本中没有带有 IE9 的 document.close()。onload 函数因此被永远阻塞。但是,在我的脚本中,如果我在使用 IE9 的 document.write 之后添加 document.close(),IE9 就会被粉碎。所以我改变了实现方式,将main函数添加到body onload部分。有用。

感谢 fmodos 的好意。

于 2013-05-20T00:42:03.017 回答