【问题标题】:JavaScript - function to load external JS files is neededJavaScript - 需要加载外部 JS 文件的函数
【发布时间】:2011-11-26 22:23:42
【问题描述】:

最近我在我的网站上添加了 facebook like 按钮、twitter 关注我们按钮和 google +1 按钮。当我告诉他们加载时,我希望他们的 JS 脚本加载。

因此,我需要一个加载外部 JS 文件的函数。我不需要知道文件何时完成加载(不需要回调)。

我在网上找到了一些方法/功能,但我想知道哪种情况最适合这种情况?

4 ways to dynamically load external JavaScript
Dynamically loading JS libraries and detecting when they're loaded
The best way to load external JavaScript

谢谢。

编辑: 添加了我找到的方法/功能。

【问题讨论】:

  • 试着改写你的问题,我不明白你在问什么......
  • 你应该添加你找到的方法/函数列表。

标签: javascript


【解决方案1】:

我会推荐使用 jQuery 的 getScript()。对于 twitter 按钮,您可以像这样加载相应的脚本:

$.getScript("//platform.twitter.com/widgets.js")

当然,您必须先在脚本中添加load jquery,并且不要忘记在您的html 中添加markup needed for the twitter-button

【讨论】:

  • jQuery 不是一个好的解决方案。需要纯基于 javascript 的解决方案。
【解决方案2】:

这可能会有所帮助:

函数加载脚本(网址,回调){ var script = document.createElement("script") script.type = "文本/javascript"; if (script.readyState){ //IE script.onreadystatechange = 函数(){ if (script.readyState == "已加载" || script.readyState == "完成"){ 脚本.onreadystatechange = null; 打回来(); } }; } else { //其他 script.onload = 函数(){ 打回来(); }; } 脚本.src = 网址; document.getElementsByTagName("head")[0].appendChild(script); }

【讨论】:

  • 我说我不需要回调函数,尽管我可以删除与回调相关的部分。为什么你将它添加到头部标签而不是身体,这真的很重要吗? + 我不应该在元素加载后立即删除它吗?
【解决方案3】:

类似

function getScript(url) {
    e = document.createElement('script');
    e.src = url;
    document.body.appendChild(e);
}
getScript('jstoload.js');

这个?

【讨论】:

  • 它是跨浏览器解决方案吗?,我应该在加载后删除元素吗?
【解决方案4】:

YUI Loader 听起来是个不错的选择。它还允许您添加自己的自定义模块,以便您可以按需加载,以及加载所有其他所需的 JS 文件。

【讨论】:

    猜你喜欢
    • 2014-05-25
    • 2017-05-10
    • 2016-05-02
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多