是否可以将变量发送到使用$.getScript
加载的脚本?
目前我有:
$.getScript( "js/my_script.js", function() {
// do something here after script has loaded
});
但我想将一个变量发送到加载的脚本。这是可能的,如果是的话,怎么样?
例如
// this is a variable set outside of the script loaded via `$.getScript`
var my_variable = 1
// how do I get that variable sent to `my_script.js`
$.getScript( "my_script.js", function() {
// do something here after script has loaded
});
答案 0 :(得分:6)
脚本在全局上下文中执行,因此它可以引用其他变量并使用jQuery函数。
从文档中可以看出,您的变量应该在$.getScript(function(){..})
调用中。因此,这可能是范围的问题。您的变量my_variable
(可能)存在于$(document).ready(function(){...})
内,因此仅限于该特定范围。
通过将数据分配给窗口对象,尝试使用全局变量:
// Set it as a global variable by assigning it to the window object
window.my_variable = 'some value';
// Now use it inside of $.getScript()
$.getScript( "my_script.js", function() {
// Access it by name
alert(my_variable);
// or as a property of window
alert(window.my_variable);
// both ways to access my_variable work and are valid.
}
答案 1 :(得分:0)
在这里要小心 - javascript就是关于第四维思考(马蒂!)。 $ .getScript是异步的,因此可能在加载脚本之前立即返回调用。如果您要加载多个脚本并需要将内容传递给每个脚本,那么您必须使用不同的变量。
答案 2 :(得分:0)
您可以将包含的文件投入使用,然后运行
$.getScript(url, function() {
functionName(params);
});