【问题标题】:Javascript not working when loaded async加载异步时Javascript不起作用
【发布时间】:2012-06-07 01:29:18
【问题描述】:

我的页面上有以下代码:

<script src="https://chatserver.comm100.com/js/LiveChat.js?siteId=&amp;planId=2594&amp;partnerId=-1" type="text/javascript"></script>

这个脚本需要很长时间才能加载,所以我想异步加载它,所以它在下载/渲染页面的其余部分时做它自己的事情。所以我输入了这段代码:

(function() {
    var s = document.createElement('script');
    s.type = "text/javascript";
    s.src = 'https://chatserver.comm100.com/js/LiveChat.js?siteId=&amp;planId=2594&amp;partnerId=-1';
    var x = document.getElementsByTagName('script')[0];
    x.parentNode.insertBefore(s,x);
  })();

但是当我使用后者时,代码不会运行。调试起来有点困难,因为文件被缩小了。

关于异步加载,我有什么遗漏吗?我还需要采取什么其他步骤吗?

谢谢!

【问题讨论】:

  • 您是否尝试使用 HTML5 异步属性?为什么不把那个属性放在你的&lt;script&gt; 标签中呢?
  • 异步属性只是为了将来验证代码。这是谷歌推荐的。我会删除它,以帮助您克服它。
  • 您的标记上还有其他脚本标签吗?如果不这样做,x 将是未定义的。
  • x 不能未定义,因为您至少有一个包含上述 sn-p 的脚本。 js 文件使用 document.write 来加载额外的脚本,所以我猜这会破坏它。
  • @jasssonpet 显然!我怎么能错过!

标签: javascript jquery asynchronous


【解决方案1】:

async 是 script 标签的新 HTML5 属性。你会想要check browser support。如果支持,您根本不必拥有自定义脚本;随便写:

<script ... async="async"></script>

【讨论】:

  • 你是对的,但是还没有支持,所以这对我一点帮助都没有。感谢您抽出宝贵时间回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 2018-01-27
  • 2014-10-24
  • 1970-01-01
相关资源
最近更新 更多