【问题标题】:Including JS file in JS code在 JS 代码中包含 JS 文件
【发布时间】:2017-12-22 22:29:24
【问题描述】:

我需要在当前工作的 jQuery 脚本中在运行时包含一个 .js 文件(更多 jQuery 代码)。例如,如果我的页面通过了身份验证,那么我想包含一个特定的脚本文件。我想在 ASP.Net MVC 中执行此操作。

有没有办法做到这一点?如果是这样,调用该文件时我应该给出什么路径?

我用谷歌搜索了$.getScript('file_path');,但我的页面正在循环刷新,我不知道为什么!也许我在路上做错了什么。

任何帮助将不胜感激!谢谢。

【问题讨论】:

  • 看看require js。 requirejs.org
  • $.getScript() 正是您所需要的。但是,如果不查看您的代码,我们将无法帮助您解决刷新问题。
  • @RoryMcCrossan 你能帮我解决我应该在其中提供的路径吗?就像,我在解决方案资源管理器的“脚本”文件夹中有我的 js 文件,比如 content.js,我想在 $.getScript(); 中调用它,我应该给出什么路径?比如 - "~/Scripts/content.js" 或者别的什么?
  • 你不能在 JS 代码中直接使用~,因为它是一个 MVC 结构。您需要使用相对路径,例如$.getScript('/basefolder/foo.js');
  • @RoryMcCrossan 我已经尝试了以下方法:xhr.onreadystatechange = function (e) { if (xhr.readyState === 4 && xhr.status == 200) { $.getScript(xhr.responseText); } else if (xhr.readyState === 4 && xhr.status == 403) { location.href = '/Home/Auth'; } }; 而“xhr.responseText”会回复为“/Scripts/content.js”但没有成功,我认为路径是问题。

标签: javascript jquery


【解决方案1】:

试试这个Including a .js file within a .js file

基本上,创建脚本标签,附加它,以便在需要它的标签之前读取它并加载所需的.js

【讨论】:

    【解决方案2】:
    //Load JS files as following
    
    ["../common/howler.min.js","js/min.js"].forEach(function (src) {
        var script = document.createElement('script');
        script.src = src;
        script.async = false;
        document.head.appendChild(script);
    });
    

    【讨论】:

      【解决方案3】:

      $.getScript() 正是您应该使用的。

      我想在 $.getScript(); 中调用它,我应该给出什么路径?比如 - "~/Scripts/content.js" 或者别的什么?

      问题在于波浪字符 (~) 是 ASP.Net MVC 构造,在 Javascript 中不起作用。对于 JS 需要使用相对路径,例如:

      $.getScript('/basefolder/foo.js');
      

      【讨论】:

        【解决方案4】:

        添加了正确的路径,它与“$.getScript();”一起使用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-27
          • 1970-01-01
          • 2011-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-14
          • 2013-03-24
          相关资源
          最近更新 更多