您可以从任何脚本中访问全局变量:window
. 而不是你的var translationJson = $.ajax({...
你可以做window.translationJson = $.ajax({...
。但这里有两件重要的事情:
首先是你不知道什么会先出现:ajax 请求完成或你的一些脚本已经要求你的变量。解决方案是将所有依赖于您运行的变量脚本绑定到$.ajax({ success:
回调。像这样:
$.ajax({
type: "GET",
url: "translation.xml",
contentType: "text/xml",
dataType: "xml",
success: function (dataSource) {
tranlationJson=ToJasonParser(dataSource);
someScriptRun(); /* here you run some depending on your variable script */
}
});
另一种方法是检查所有依赖脚本中的变量,如下所示:
var periodicalAttemptToRunScriptDependant = setInterval( function(){
if( 'object' == typeof window.translationJson ){
someScriptRun(); /* here you run some depending on your variable script */
clearInterval( periodicalAttemptToRunScriptDependant );
}
}, 1000 );
第二:在您的示例中,对变量的任何请求都会导致 ajax 请求,因为它实际上不是变量而是函数。尝试将您的代码更改为:
var tranlationJson;
$.ajax({
type: "GET",
url: "translation.xml",
contentType: "text/xml",
dataType: "xml",
success: function (dataSource) {
tranlationJson = ToJasonParser(dataSource);
}
});