Javascript 在IE9中动态添加脚本时未找到全局数组
我有两个JavaScript文件:“一个”和“两个”。“一”文件动态添加“二”,如下所示:Javascript 在IE9中动态添加脚本时未找到全局数组,javascript,dynamic,cross-browser,load,internet-explorer-9,Javascript,Dynamic,Cross Browser,Load,Internet Explorer 9,我有两个JavaScript文件:“一个”和“两个”。“一”文件动态添加“二”,如下所示: scriptNode = document.createElement('script'); scriptNode.type = 'text/javascript' scriptNode.src = '/JavaScript/Two.js'; document.getElementsByTagName("head")[0].appendChild(scriptNode); 然后,加载“两个”文件后,“一
scriptNode = document.createElement('script');
scriptNode.type = 'text/javascript'
scriptNode.src = '/JavaScript/Two.js';
document.getElementsByTagName("head")[0].appendChild(scriptNode);
然后,加载“两个”文件后,“一个”文件将使用其功能。
情况是这样的:
GlobalArray=new Array();
function Init(name){
this.name=name;
}
function PopulateGlobalArray(name){
var temp=new Init(name);
GlobalArray.push(temp);
console.log(GlobalArray.length); // returns "1"
OtherStuff();
}
function OtherStuff(){
console.log(GlobalArray.length); // returns "0" only in IE9
}
GlobalArray=new Array();
function Init(name){
this.name=name;
}
function PopulateGlobalArray(name){
var temp=new Init(name);
GlobalArray.push(temp);
console.log(GlobalArray.length); // returns "1"
OtherStuff();
}
function OtherStuff(){
console.log(GlobalArray.length); // returns "0" only in IE9
}
在“One”文件中,我调用PopulateGlobalArray()函数
在OtherStuff()
中的每个浏览器(Opera、Firefox、Ghrome、IE7、IE8、IE10)中,console.log()
返回1
。
在IE9中,它返回0
——数组只是空的
这花了我很多时间,但最后我发现如果我在HTML中包含“2”文件
<script src="/JavaScript/Two.js"></script>
或者不使用JavaScript加载,它也在IE9上工作
我的问题是有人知道为什么会这样吗
编辑:我很确定这与DOCTYPE有关。我使用的是严格的Doctype,但浏览模式:IE9和Dicument模式:Quirks不会导致错误。将GlobalArray添加到窗口对象如何。即window.GlobalArray=新数组()。不过,您可能只需要在前面加上var关键字。我以前试过使用“var”。window.GlobalArray=新数组();更改nothings,并且var window.GlobalArray=new Array();给我错误“预期';'”