【问题标题】:How to use external(http) library in a JS file [duplicate]如何在 JS 文件中使用外部(http)库[重复]
【发布时间】:2013-06-26 21:51:59
【问题描述】:

我已经找到了几个关于此的答案,但在我不明白的情况下,它们涵盖了与调用文件位于同一目录中的库。

在我的应用程序中,我目前在 index.html 页面头中有以下代码:

<script type="text/javascript"
          src="https://apis.google.com/js/api.js"></script>

我想要做的是在.js 文件中加载和使用同一个库。该应用程序是客户端的,当前使用以下框架: "serveup", "hem","es5-shimify", "json2ify", jqueryify"。

我曾尝试使用 jquery 'require',但收到错误消息,提示找不到模块,我猜它正在寻找本地文件。

【问题讨论】:

  • Google api.js 文件添加了全局 window.gapi 变量,因此只要 HTML 文件的所有库(包括那个库)在您的任何 JS 文件之前加载(我我正确理解您的问题),您应该能够在自己的 JavaScript 中使用 gapi 并拥有其所有功能,而不必直接将该 JS 文件包含在您自己的文件中(因为它们都加载在同一个文件中) HTML 页面)。
  • @ajp15243 看起来你是对的。我对 JS 完全陌生,完成这个项目的时间很短。感谢您的评论。

标签: javascript


【解决方案1】:

试试这个:

  var fileref=document.createElement('script');
  fileref.setAttribute("type","text/javascript");
  fileref.setAttribute("src", "https://apis.google.com/js/api.js");

【讨论】:

    【解决方案2】:

    我自己对此有点模糊,但我似乎记得脚本不能轻易调用其他域的脚本,以避免违反“单一来源”规则。

    典型的技术是执行 ajax 请求,然后执行 eval,或者将&lt;script&gt; 标记注入标头,这会导致浏览器的解释器获取资源,但可能会在执行过程中稍晚一点取决于您希望完成的任务。

    我为此所做的是使用Require.js 框架,它处理各种沙箱的所有各种奇怪的东西。有点难以理解,但也许值得。

    【讨论】:

    • mat2000 代码似乎可以正常工作,我只需要再做一些测试!
    • 他的回答很好,而且会奏效。我喜欢 Require.js,因为它有助于管理大型依赖集,并带有优化器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2012-04-13
    • 2019-11-07
    • 1970-01-01
    • 2012-07-14
    • 2016-11-14
    相关资源
    最近更新 更多