帖子標題可能沒有完全解釋,但這裏是我希望做的:我在一個單獨的文件中有我的JavaScript代碼,並且我已經安排它如此編排加載一個JavaScript文件,加載時沒有設置變量
var PK = {
"vars" : {
"uris" : {
"app1": "http://this/server/",
"app2": "http://that/server/"
},
"something": {
"objects": [],
"obj1": { "url": PK.vars.uris.app1 },
"obj2": { "url": PK.vars.uris.app2 }
}
},
"methods" : {
"doThis" : function(a) {
$.ajax({
url: PK.vars.uris.app1,
data: data,
type: "GET",
success: function(data) { .. do something .. }
});
},
"doThat" : function(a) {
$.ajax({
url: PK.vars.uris.app2,
data: data,
type: "GET",
success: function(data) { .. do something else .. }
});
},
"init" : function(position) {
if (position) { PK.methods.doThis();
}
else {
PK.methods.doThat();
}
}
}
};
,然後在我的html,我有以下
$(document).ready(function() {
PK.vars.uris.app1 = "[% app1 %]";
PK.vars.uris.app2 = "[% app2 %]";
PK.methods.init();
});
其中app1
和app2
值是基於配置文件服務器發送。除此之外,它無法按預期工作,因爲當單獨的JavaScript加載時,PK.vars.uris當時沒有定義。當然,如果我有PK.vars.uris {}硬編碼,一切都很好。
如何才能延遲評估var PK
,直到文檔已加載並且PK.vars.uris
可用於JavaScript代碼?
不知道我理解 - 但你只是第一次加載單獨的文件? –
嗯...我希望我沒有搞錯解釋看起來很簡單的情況。我的'external.js'具有定義的'var PK = {}'。它通過腳本標籤加載到主html文件中。在同一個html文件中,'PK.vars.uris'的值被初始化爲'$(document).ready(function()'。我想確保初始化的值可用於'external'中的'var PK'。 js' – punkish