我一直在用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