带有ajax和警报的IE8问题

时间:2010-12-23 14:23:27

标签: ajax internet-explorer

我有以下脚本。

在ff,safari中一切正常。

但在IE中警告 “Du kannst pro Beitrag nur 1 x voten。” 未显示

浏览器支持代码

function voteFunction(){
var ajaxRequest;  // The variable that makes Ajax possible!

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
    var TYPE = document.getElementById('TYPE').value;
                if(ajaxRequest.readyState == 4){
                    if (ajaxRequest.responseText == 'you voted allready'){alert('Du kannst pro Beitrag nur 1 x voten.')}
                    if (ajaxRequest.responseText != 'you voted allready'){

        document.getElementById('cdm_play_video_votes').innerHTML= ajaxRequest.responseText;}
        if (TYPE == 1 ){publishVideovote();}
                    if (TYPE == 2 ){publishImagevote();}

    }


}

var videoid = document.getElementById('videoid').value;
    var userid = document.getElementById('userid').value;
var queryString = "?function=vote&videoid=" + videoid + "&userid=" + userid ;

ajaxRequest.open("GET", "function.php" + queryString, true);

ajaxRequest.send(null);
 }

 //-->

任何人都可以帮助我吗?

提前多多感谢

2 个答案:

答案 0 :(得分:1)

(删除原始答案)

好的,既然AJAX部分有效,并且处理程序中的警报失败了,我会查看那里的代码。

使用ID“type”,并使用同名的变量引用该元素的,可能会影响您的代码IE's global namespace pollution

尝试从以下位置更改此行:

var TYPE = document.getElementById('TYPE').value;

为:

var typeValue = document.getElementById('TYPE').value;
    ^^^^^^^^^

然后在病房之后对它进行所有引用。

答案 1 :(得分:0)

哪些提醒未显示?您发布的代码包含两个,因此确定我们应该关注的代码部分将会有所帮助。

我注意到的一件非常小的事情:你在第二个警报结束时错过了一个分号 - 如果(ajaxRequest.responseText =='你投了全部'){alert('Du kannst pro Beitrag nur 1 x voten。')} - 这可能会导致问题(我不确定IE8对于那种事情有多挑剔)。