Javascript 将变量与$.getScript()一起使用
我正在使用Javascript 将变量与$.getScript()一起使用,javascript,jquery,Javascript,Jquery,我正在使用$.getScript()调用外部文件。调用时是否可以传递变量值 例如: var passVal = "ch967"; $.getScript(ext.js); //how can I use `passVal` within ext.js ext.js if(passVal=="ch967"){ var a = "Relax Chairs" } else { var a = "Table Chairs" } 您只需在全局范围内声明变量,例如: window.passV
$.getScript()
调用外部文件。调用时是否可以传递变量值
例如:
var passVal = "ch967";
$.getScript(ext.js); //how can I use `passVal` within ext.js
ext.js
if(passVal=="ch967"){
var a = "Relax Chairs"
} else {
var a = "Table Chairs"
}
您只需在全局范围内声明变量,例如:
window.passVal = "ch967";
这样,您就可以访问由$.getScript
调用的外部脚本中的变量
希望这有帮助
调用时是否可以传递变量值
不是直接的,不,你必须把它放在全局的某个地方,然后脚本从那里访问它。那可能是
- 全局变量
会话存储
…或者脚本可以检测到的任何其他全局状态。是的,可以在使用
$.getScript()加载的外部javascript页面中访问内联javascript中声明的全局变量
如果
var passVal=“ch967”代码>不工作
试一试
您可以通过以下方式传递变量:
var passVal = "ch967";
$.getScript('ext.js?passVal='+passVal);
然后在ext.js文件中,您需要两件事:一个新函数和它的用法来获取您的参数:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
getParameterByName('passVal');
谢谢TJ克劳德。我尝试使用var window.passVal=“ch967”;$。getScript(ext.js)代码>但不起作用?这是错的吗?@Becky:那将创造一个全球性的,是的ext.js
将需要使用该全局设置。@Becky:这两个选项中的任何一个都可以在ext.js
中使用。第一种方法将起作用,除非您对窗口
变量进行了阴影处理(例如,在函数或类似函数中完成var窗口
)。第二个将起作用,除非您已经对passVal
变量进行了阴影处理(例如,在函数或类似函数中完成var passVal
),谢谢。我打字打错了。。。声明一个全局变量是有效的。
var passVal = "ch967";
$.getScript('ext.js?passVal='+passVal);
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
getParameterByName('passVal');