Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > AJAX и JavaScript


Автор: Neuronix 17.9.2006, 17:46
Вот код скрипта:

Код


...

function doLoad() {

  var request=null;

  if(!request) try {
    request=new ActiveXObject('Msxml2.XMLHTTP');
  } catch (e){}

  if(!request) try {
    request=new ActiveXObject('Microsoft.XMLHTTP');
  } catch (e){}

  if(!request) try {
    request=new XMLHttpRequest();
  } catch (e){}

  if(!request)
    return "";

  var r1 = rand_int(9999999999999999);
  var sURL = "/ajax.cgi?frame=events&callid=" + r1; 
 
  request.open('GET', sURL, false);
  request.send(null);

  eval(request.responseText);

  document.body.innerHTML =  request.responseText + document.body.innerHTML;
}

function rand_int(mn,mx)
{   var rnd = Math.random();
    var min = (mx ? (mn || 0) : 0);
    var max = mx || (mn ? mn : 0);
    if (max == 0) return rnd;
    var rrand = (rnd * (max - min + 1)) % (max - min + 1) + min;
    return Math.round((rrand < max+0.5) ? rrand : rrand - max + min - 0.5);
}

function reload() {
    setInterval("doLoad();", 1000);
}

</script>

<body onLoad="reload()">

...



Раньше проблема стояла в исполнении javascript в подгружаемой странице, посоветовали юзать eval() - теперь вместо подгружаемого текста, страница _полностью_ очищается, и в нее всталяется только полученный код от скрипта-обработчика...

Скрипт-обработчик выдает Javascript-код в виде строки 
Код
document.write('any-html-code'); someFunction();

Посоветуйте, как быть и что делать!


Автор: 12345c 17.9.2006, 21:46
Не пользоваться document.write(), а записывать в innerHTML какого-то тега.

Автор: Neuronix 19.9.2006, 15:52
Не хочет писать блин...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)