3

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

3 回答 3

7

jQuery.getScript():

该脚本在全局上下文中执行,因此它可以引用其他变量并使用 jQuery 函数。

从文档看来,您的变量似乎应该可以在$.getScript(function(){..})调用中访问。因此,这可能是scope的问题。您的变量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.
}

资料来源:这里的老问题和这里的 $.getScript 文档。 在我的个人服务器上验证。

于 2012-11-16T07:40:09.737 回答
2

您可以将包含的文件放入函数中,然后运行

    $.getScript(url, function() {
       functionName(params);
    });
于 2018-01-18T20:33:18.160 回答
0

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

于 2015-10-10T14:09:11.150 回答