我一直在用document.write和onLoad函數掙扎。document.write,onload和可變範圍問題
如果你考慮一個JS代碼,像這樣的=>
window.i = 0;
console.log(i + " //should be 0");
document.write("<scr"+"ipt onLoad='onA1Ready()' src='a1.js'><\/sc"+"ript>");
function onA1Ready(){
document.write("<scr"+"ipt onLoad='onA2Ready()' src='a2.js'><\/sc"+"ript>");
}
function onA2Ready(){
console.log(i + " //should be 2");
}
和a1.js beeing這樣=>
i++;
console.log(i + " //should be 1");
和a2.js beeing頗爲相似=>
i++;
console.log(i + " //should be 2");
我期望最後的控制檯輸出等於2,但是這裏是我從控制檯中得到的=>
0 //should be 0 test.js (line 2)
1 //should be 1 a1.js (line 2)
i is not defined ERROR i++; a2.js (line 1)
onA2Ready is not defined
我想這個問題是範圍相關的,但我不知道如何。
如果您有任何關於這裏發生了什麼的想法,那將是非常棒的。
似乎很大,我給它一個嘗試 非常感謝 – Erwin 2012-01-13 08:29:59
偉大的作品再次感謝 – Erwin 2012-01-13 08:33:40
記得投票這是你的答案;。!) – jaime 2012-01-13 08:34:11