【问题标题】:Include js file in jquery - updated在 jquery 中包含 js 文件 - 已更新
【发布时间】:2015-03-09 18:26:48
【问题描述】:

我试图在 jquery 中包含另一个 js 文件。我找到了这个示例代码并尝试过,但是浏览器控制台给了我这个错误。

代码

        $.getScript( "js/balloon.js", function( data, textStatus, jqxhr ) {

          console.log( data ); // Data returned
          console.log( textStatus ); // Success
          console.log( jqxhr.status ); // 200
          console.log( "Load was performed." );
        });

错误

XMLHttpRequest 无法加载 file:///C:/EDIT/swf/js/balloon.js?_=1420941386739。跨源请求仅支持协议方案:http、data、chrome-extension、https、chrome-extension-resource。

我犯了什么错误,谁能告诉我?谢谢。

如果有另一个在 js 中包含 js 文件的好例子,请为我推荐。再次感谢。

更新

我也尝试了下面的代码,但它包含在html中包含的js之前,有什么建议可以将它包含在一起吗?

    var script = document.createElement('script');
    script.src = "js/balloon.js";
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);

【问题讨论】:

  • 如果您的目录中已经有脚本,为什么还要加载它?你不能只使用script 标签吗?
  • 尝试通过网络服务器(即http://127.0.0.1/project/index.html)运行您的网页,而不是直接从网络浏览器运行。
  • @AstroCB 因为我有 20 多个 js……当我的功能需要时,我只需要一种 js
  • 根据你的情况和 js 文件的大小,将你的 js 文件合并成一个大的 js 文件然后缓存它通常更有效。但是是的,很确定你需要从服务器运行它才能工作。
  • 在某个服务器上托管您的代码。目前发生的情况是。您正在直接从没有托管的文件夹中运行 .html 文件。这就是为什么当您尝试访问 js 文件协议时显示为文件:/ /而不是http。您可以在 Internet Explorer 上运行相同的页面,这将正常运行。

标签: javascript jquery


【解决方案1】:

您需要在服务器上运行脚本。另外 - 默认情况下,出于安全原因,您不能从另一个域加载 js(jsonp)。检查link

【讨论】:

    【解决方案2】:

    将整个代码文件夹托管在 服务器。目前发生了什么 is.you 正在运行 .html 文件 直接从文件夹没有 托管。这就是你尝试的原因 要从 html 访问 js 文件,协议显示为 file:// 而不是 http:// 你可以运行相同的 Internet Explorer 上的页面,此 会正常运行。 Chrome 有一些安全政策。这就是它无法在其上运行的原因。

    【讨论】:

    • @ImHappy 有帮助吗?
    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    相关资源
    最近更新 更多