将变量发送到$ .getScript

时间:2012-11-15 10:58:08

标签: jquery getscript

是否可以将变量发送到使用$.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
});

3 个答案:

答案 0 :(得分:6)

jQuery.getScript():

  

脚本在全局上下文中执行,因此它可以引用其他变量并使用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.
}

来源:旧问题here和$ .getScript docs here 在我的个人服务器上验证。

答案 1 :(得分:0)

在这里要小心 - javascript就是关于第四维思考(马蒂!)。 $ .getScript是异步的,因此可能在加载脚本之前立即返回调用。如果您要加载多个脚本并需要将内容传递给每个脚本,那么您必须使用不同的变量。

答案 2 :(得分:0)

您可以将包含的文件投入使用,然后运行

    $.getScript(url, function() {
       functionName(params);
    });