оригинальный скрипт для нумерации страниц - PullRequest
3 голосов
/ 31 января 2010

Это мой скрипт разбиения на страницы, и мне интересно, почему я получаю эти ошибки в IE:

function GetXmlHttpObject(){
  var a;
  try{
    a=new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(d){
    try{
      a=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(c)
    {a=false;}
  }
  if(!a&&typeof XMLHttpRequest!="undefined")
  {
    try{
      var a=new XMLHttpRequest();
    }
    catch(d){
      var a=false;
    }
  }
  return(a);
}
var i=0;var ii=0;var b=0;var bb=0;

function ForumPagination(c){
  document.getElementById("forumsblock").style.display="none";
  document.getElementById("WaitDiv").innerHTML="<img src='images/loading.gif' >";
  xmlHttp=GetXmlHttpObject();
  if(xmlHttp==null){
    alert("Your browser does not support AJAX!");
    return;
  }
  var a="indext.php?name=Dynamic_forums&pagenum="+c;
  xmlHttp.open("GET",a,true);xmlHttp.onreadystatechange=ReplyLoading;xmlHttp.send(null);
}

function ReplyLoading(){
  if(xmlHttp.readyState==2||xmlHttp.readyState==4){
    var a=xmlHttp.responseText;
    document.getElementById("WaitDiv").innerHTML=""+a;
  }
}

скрипт отлично работает в FF

Кстати, когда я изменяю страницу, я не могу сделать это снова.

Сведения об ошибке веб-страницы

Сообщение: getLoad не определено. Строка: 105 символов: 311 код: 0 URI: http://nukelearn.com/

Сообщение: данные, необходимые для завершить эту операцию еще не имеется.

Строка: 9 Char: 74 Код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Сообщение: Требуется объект Строка: 3 знака: 1 код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Сообщение: Требуется объект Строка: 3 знака: 1 код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Сообщение: Требуется объект Строка: 3 знака: 1 код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Сообщение: Требуется объект Строка: 3 Char: 1 код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Сообщение: Требуется объект Строка: 3 знака: 1 код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Сообщение: Требуется объект Строка: 3 знака: 1 код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Сообщение: Требуется объект Строка: 3 знака: 1 код: 0 URI: http://nukelearn.com/includes/199233334JOE.js

Ответы [ 4 ]

4 голосов
/ 31 января 2010

Сделайте себе одолжение и используйте jQuery : вам больше не придется иметь дело с конкретными проблемами браузера (по крайней мере, для javascript)

1 голос
/ 31 января 2010

Ваша первая ошибка из-за этого утверждения на вашей странице:

window.onload = getLoad;

Функция getLoad отсутствует, поэтому возникает эта ошибка. Эта ошибка также не относится к IE, такая же проблема существует независимо от браузера.

Второй набор ошибок вызван неправильным пониманием того, что означают различные значения readyState в XmlHttp. Эта строка является проблемой:

if(xmlHttp.readyState==2||xmlHttp.readyState==4){

Чтобы цитировать из документов MSDN, readyState 2:

2 (Отправлено) Метод отправки был называется. responseText недоступен. responseBody недоступен.

Похоже, вы рассматриваете readyState 2 как завершенный запрос (а затем попытаетесь использовать свойство responseText), что, как я ожидаю, и является причиной проблемы. Измените эту строку на:

if(xmlHttp.readyState==4){

См. Этот вопрос , где обсуждаются различные значения readyState (сводка: используйте только 4).

И чтобы повторить сказанное в других ответах, используйте jQuery или, по крайней мере, другую меньшую библиотеку, которая отвлечет кросс-браузерную злобность XmlHttp.

0 голосов
/ 31 января 2010

Замените вашу первую функцию на:

function GetXmlHttpObject(){
    return !!window.XMLHttpRequest ? window.XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
}

Надеюсь, это источник вашей головной боли.

0 голосов
/ 31 января 2010

Я согласен с @kemp. Если вы используете jQuery, все ваши проблемы исчезнут.

Вот плагин для jQuery, который должен соответствовать вашим потребностям.

http://tympanus.net/codrops/2009/11/17/jpaginate-a-fancy-jquery-pagination-plugin/

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