JQuery скрипт не работает в IE? - PullRequest
0 голосов
/ 13 ноября 2010

У меня есть следующий скрипт, который находится во внешнем файле, который вызывается вверху моей HTML-страницы. Идея состоит в том, что у меня есть запрос Ajax, проверяющий базу данных, когда база данных обновляется, Ajax видит это и вызывает функцию ниже. Он отлично работает в Firefox, но совсем не работает в IE. Есть предложения?

var GoPopUp = function(){
  $('#PopNewCall').fadeIn('slow');
  PageRefreshTimer();
}

//Function which refreshes page after a certain number of seconds with no user Inputs
var PageRefreshTimer = function(){
  setTimeout("location.reload(true);",30000); //1,000 = 1 second
}

//Function which refreshes page after user has clicked refresh
var RefreshNow = function(){
  setTimeout("location.reload(true);",0);
}

РЕДАКТИРОВАТЬ: Если кому-то интересно, я использую прямой javascript для ajax. Здесь это ниже. Я вызываю его при загрузке страницы, а затем он продолжает вызывать себя в цикле.

function checkRefresh(str)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
 else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
    if (document.getElementById("lastCallID").innerHTML < xmlhttp.responseText)
    {
        setTimeout(GoPopUp(), 100); 
    }
    else
    {
        setTimeout('checkRefresh()',15000)
    }

  }
 }
 xmlhttp.open("GET","getnewid.php",true);
 xmlhttp.send();
 }

Ответы [ 2 ]

2 голосов
/ 13 ноября 2010

Вместо:

setTimeout(function(){ location.reload(true) }, 0);

вы должны написать:

location.reload(true);
2 голосов
/ 13 ноября 2010

Это не ответ, но вы должны заменить

        setTimeout("location.reload(true);",0);

с

setTimeout(function(){ location.reload(true) }, 0);

Поскольку первое является медленным и вызывает дополнительную оценку.

РЕДАКТИРОВАТЬ # 2: Измените GoPopUp() на GoPopUp, возможно, вы не захотите выполнять его немедленно. То же самое с checkRefresh.

if (document.getElementById("lastCallID").innerHTML < xmlhttp.responseText)
    {
        setTimeout(GoPopUp, 100); 
    }
    else
    {
        setTimeout(checkRefresh,15000)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...