IE6和7与innerHTML有关

时间:2011-09-27 15:37:51

标签: javascript internet-explorer-6

IE6和7问题与innerHTML

我在我开发的应用程序中使用了ajax,但是IE6和IE7存在问题,它们不支持innerHTML。必须使用什么来解决此问题并与跨浏览器兼容?

示例代码如下所示。

function showFAQ(src, target){
     xhr.onreadystatechange=function(){
       if(xhr.readyState == 4 && xhr.status == 200){
         document.getElementById('resultDiv').innerHTML=xhr.responseText;
       }
    }

    str = "?action=get&request="+src;
    xhr.open("GET", "./requests/data.php"+encodeURI(str), true);
    xhr.send();
}

在FireFox中,IE8和其他主流浏览器工作正常。问题出在IE6和7上。

任何帮助/建议将不胜感激。

由于

3 个答案:

答案 0 :(得分:1)

IE无法使用innerHTML更新只读元素...请考虑这一点......:)

答案 1 :(得分:0)

尝试

var xmlHttp;

function getXmlHttpObject() {
    var xmlHttp = null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer 6+
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

var xhr = getXmlHttpObject();

<小时/> 更新

尝试添加

xhr.send(null);

str = "?action=get&request="+src;
xhr.open("GET", "./requests/data.php"+encodeURI(str), true);

答案 2 :(得分:0)

从IE5开始支持

innerHTML。我认为你的问题是使用xmlhttprequest对象。只有IE7支持那个。但是,您可以将ActiveXObject作为stealthyninja的代码使用。