jQuery的$ .getScript - 旧的函数和变量在执行脚本
题
我执行与jQuery $ .getScript一个JavaScript。 在所执行的脚本我还没有访问我的源文件的函数和变量。
是否有一个解决方案?
解决方案
由$ .getScript执行的脚本()的确实强>可以访问全局上下文。您可以从外部脚本中使用任何全局变量(或函数为此事)。
其他提示
尼克Craver,我只花3(!)小时沉迷在为什么我的事情是行不通的,你给我,我需要使它工作的洞察力。
XOXOXOXOXOXOXOXO
有趣的是注意到:
可以将变量声明为一个jquery VAR是这样的:
$variableName = something;
的jquery这样也具有从在任何位置范围访问它。
$(function(){
$alertString = 'Hello World';
$.getScript('test.js', function(){
// do nothing
});
}
test.js:
alert( $alertString );
我找到了答案我的题目的把握这里有帮助的,但我仍然不能使它在自己的环境中工作,直到我偶然发现的这篇文章TechMonks :
当我复制/粘贴的最后一个例子为我的主要的.js的文件头这一切只是工作。至少对我来说,则$ .getScript()函数被打破,这是修复:
jQuery.extend({
getScript: function (url, callback) {
var head = document.getElementsByTagName("head")[0] || document.documentElement;
var script = document.createElement("script");
script.src = url;
// Handle Script loading
{
var done = false;
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function () {
if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
done = true;
//success();
//complete();
if (callback) callback();
// Handle memory leak in IE
script.onload = script.onreadystatechange = null;
if (head && script.parentNode) {
head.removeChild(script);
}
}
};
}
head.insertBefore(script, head.firstChild);
return undefined;
}
});
不隶属于 StackOverflow