Including JS file in JS code
我需要在运行时在当前工作的jquery脚本中包含一个.js文件(更多jquery代码)。例如,如果我的页面已经过身份验证,那么我想要包含一个特定的脚本文件。我想在ASP.NET MVC中实现这一点。
有办法吗?如果是这样,调用该文件时我应该给出什么路径?
我在google上搜索了$.getScript('file_path');,但我的页面正在循环中刷新,我不知道为什么!也许我在路上做错了什么。
任何帮助都将不胜感激!谢谢您。
- 看看需要JS。Realj.Org
- $.getScript()正是您所需要的。但是,如果没有看到您的代码,我们就无法帮助您解决刷新问题。
- @Rorymcrossan你能帮我走我应该走的路吗?比如说,我的JS文件在解决方案资源管理器的"scripts"文件夹中,比如content.js,我想在$.getscript();中调用它,我应该给出什么路径?比如-"~/scripts/content.js"或者其他什么?
- 不能在JS代码中直接使用~,因为它是一个MVC构造。您需要使用相对路径,例如$.getScript('/basefolder/foo.js');。
- @Rorymcrossan我试过上面的方法: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"的形式回复,但是没有成功,我认为路径是个问题。
- @Rorymcrcrossan谢谢!让我的代码开始工作……路径设置为basefolder,即,"../../js/foo.js"。
- 很高兴你能成功。我给你加了个答案
添加了正确的路径,并与"$.GetScript();"一起使用。
你应该用$.getScript()来做这个。
I want to call it in $.getScript();, what path should I give? like -"~/Scripts/content.js" or something else?
这是因为tilde字符(~是一个ASP.NET MVC构造,在javascript中不起作用。对于JS,需要使用相对路径,例如:
1
| $.getScript('/basefolder/foo.js'); |
1 2 3 4 5 6 7 8
| //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);
}); |
尝试在.js文件中包含.js文件
基本上,创建脚本标记,附加它,以便在需要它的脚本标记之前读取它,并加载所需的.js