Javascript 无法在IE8中调用apendChild方法

Javascript 无法在IE8中调用apendChild方法,javascript,Javascript,您好,我正在尝试动态加载jquery文件,我使用了以下代码并获得 在FF&IE9中执行,在IE8中抛出以下错误,有人能建议我吗 如何解决这个问题 Error: SCRIPT65535: Unexpected call to method or property access. Effecta.ObjectComparator_v1.1.1.js, line 32 character 5 我写的代码如下: var req = new XMLHttpRequest(); req.open

您好,我正在尝试动态加载jquery文件,我使用了以下代码并获得 在FF&IE9中执行,在IE8中抛出以下错误,有人能建议我吗 如何解决这个问题

Error:
SCRIPT65535: Unexpected call to method or property access. 
Effecta.ObjectComparator_v1.1.1.js, line 32 character 5
我写的代码如下:

var req = new XMLHttpRequest();
    req.open('GET', "http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js", false);
    req.onreadystatechange = function(){            
        if (req.readyState == 4) {              
            var script = document.createElement("script");
            script.appendChild(document.createTextNode(req.responseText)); // line 32
            document.head.appendChild(script);          
        }
    };
    req.send(null);

提前感谢

IE8没有
document.head
属性,请尝试
document.getElementsByTagName['head'][0]

您正在创建一个跨域
XMLHttpRequest
请求。IE8仅支持条件非常有限的情况

相反,创建一个脚本标记并将其
src
属性设置为url

借鉴谷歌在分析领域的注入方式:

(function(d, script) {
    script = d.createElement('script');
    script.type = 'text/javascript';
    script.async = true;
    script.onload = function(){
        // remote script has loaded
    };
    script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js';
    d.getElementsByTagName('head')[0].appendChild(script);
}(document));

该错误似乎与发布的代码无关?我给出了使用该代码的目的的名称,我更改了标题,感谢您的建议,您可能与浏览器支持有冲突,IE8不稳定。但是既然你有src并且正在生成一个脚本标记,你可以直接附加一个正确的标记,而不是加载它的内容,而且不仅仅是直接插入脚本标签?我不太知道如何动态添加jQuery文件我在谷歌搜索后找到了这个有效的解决方案,你能分享一下优化后的代码片段吗?非常感谢你的回复,我做了更改,但在文档的上面一行仍然显示了相同的错误。getElementsByTagName['head'][0]req.responseText的实际值和类型是什么?
req.responseText给了我一个jQuery文件作为text,尽管Benjamin给出了正确的方法,您也可以尝试设置
script.text=req.responseText
,而不是尝试创建textNode。您好,他的代码在IE中运行良好,但在FF中抛出以下错误。我使用了这个EffectaJQ=jQuery.noConflict(true);和EffectaJQ('*')。在('click',函数(e){})上;错误:TypeError:EffectaJQ(…)。on不是一个函数。您的代码在IE中运行良好,但在FF中抛出以下错误。我使用了这个EffectaJQ=jQuery.noConflict(true);和EffectaJQ('*')。在('click',函数(e){})上;错误:TypeError:EffectaJQ(…)。on不是函数这与上面的脚本无关。如果您希望它在开始时同步,您可以执行
document.write('http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js)
但实际上,这绝不是一个好主意。您应该了解JavaScript并发模型是如何工作的。