Проблема с IE8 с ajax и оповещением - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть следующий скрипт.

все отлично работает в 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 ]

1 голос
/ 23 декабря 2010

(удален оригинальный ответ)

Хорошо, так как AJAX-часть работает, и просто предупреждение в обработчике дает сбой, я бы посмотрел код там.

Использование идентификатора "type" и обращение к значению этого элемента с переменной с таким же именем пахнет Загрязнение глобального пространства имен IE может быть влияет на ваш код.

попробуйте изменить эту строку с:

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

до:

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

, а затем все ссылки на него после подопечных.

0 голосов
/ 23 декабря 2010

Какие из предупреждений не отображаются? Код, который вы опубликовали, содержит два, поэтому было бы полезно определить, на какой части кода мы должны сосредоточиться.

Одна очень маленькая вещь, которую я заметил: вам не хватает точки с запятой в конце второго оповещения - if (ajaxRequest.responseText == 'вы проголосовали уже') {alert ('Du kannst pro Beitrag nur 1 x voten. ')} - что может вызвать проблему (я не уверен, насколько требователен IE8 к таким вещам).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...