javascript - 延迟解析 javascript 后,脚本不会在 IE 上运行

标签 javascript internet-explorer browser seo

为了优化我的页面,我想推迟对 javascript 的解析。我将下面的代码放在我的 facebook 类似框的页面的头部:

<script type="text/javascript">
 function downloadJSAtOnload() {
   var element = document.createElement("script");
   element.src = "http://connect.facebook.net/en_US/all.js#xfbml=1";
   document.body.appendChild(element); 
 } 
 if (window.addEventListener)
 window.addEventListener("load", downloadJSAtOnload, false);
 else if (window.attachEvent)
 window.attachEvent("onload", downloadJSAtOnload);
 else window.onload = downloadJSAtOnload;
</script>

现在在 Google Chrome 和 Mozilla 上运行良好,但在 Internet Explorer 上不显示类似框。

请问我该如何解决

最佳答案

我见过的所有脚本加载器都将脚本元素附加到第一个 head 标签,而不是像 this description 中所示的 body 标签。 .

   var head = document.getElementsByTagName('head')[0];
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = 'http://connect.facebook.net/en_US/all.js#xfbml=1';
   head.appendChild(script);

我不能说这是否是导致您在 IE 上出现问题的原因,但似乎值得更改。

此外,由于您正在等待窗口加载事件,您是否意识到在页面上的最后一个图像完成下载之前不会加载此脚本。这比您等待的时间要长得多。

据我所知,如果在加载内容后加载 FB 脚本,IE 将无法正常工作。即使你把它放在传统脚本标签中的内容之后,它在 IE 中也不起作用。这一定是关于 facebook 脚本在 IE 中的工作方式。对不起,我帮不上忙了。你可以看到即使这在 IE8 中也不起作用:

<div id="fb-root"></div><fb:like-box href="http://facebook.com/pages/MyJobMag/165211540158300" width="336" show_faces="false" stream="false" header="true" colorscheme="light"></fb:like-box>

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>

但是,这在 IE8 中确实有效:

附言您的 HTML 中的 URL 后面有一个无关的分号,但删除它似乎并不能解决问题。

关于javascript - 延迟解析 javascript 后,脚本不会在 IE 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129329/

相关文章:

javascript - OpenLayers:IE:SCRIPT5:访问被拒绝

forms - 通过 HTML 或 JavaScript 禁用 Web 表单上的自动填充?

javascript - 重构代码时无法读取未定义的属性 'push',第 2 部分

javascript - 同一个表单出现两次时的提交功能

javascript - Swig (Node.js) 中的 JSON.parse() ?

javascript - JS SDK 请求安全

java - IE6/IE8、GZip 压缩和 OC4J 是否存在已知问题?

javascript - 由于未正确检测到怪癖模式,jQuery 1.10.2 的简单模式无法在 IE 中工作

javascript - Javascript 文件大小会影响浏览器的解析时间吗?两个 5kb JS 文件的解析速度是否会比单个 10kb 文件的解析速度更快,反之亦然?

html - WebSockets 与服务器发送的事件/事件源