Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量与$.getScript()一起使用_Javascript_Jquery - Fatal编程技术网

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');