Проблема: xajax и explorer

ForestGump

Новичок
Проблема: xajax и explorer

Добрый день. Написал небольшую функцию, выводящую результаты из БД с использованием библиотеки xajax. Работает корректно в опере, сафари, фаерфоксе. В екслорере работа скрипта прерывается alert'oм "Internet explorer cannot open the internet site... Operation aborted". Может кто-нибудь сталкивался с подобным и поможет разобраться?
 
ForestGump
Я себе недавно дверь поставил, внутрь открываицо а наружу нет.
Кто-то сталкивался? Поможете?

А теперь по теме.
Напиши хоть что ты выводишь, как выводишь и тд.
 
Вот собственно код включающий функцию, и вывод результата
<?php
require_once ('xajax/xajax.inc.php');
function myFunc(){
$qr_str = "SELECT * FROM ...";
$qr_res = mysql_query($qr_str) or die(mysql_error);
$result = mysql_fetch_object($qr_res);
$code = '<b>$result->rowName</b> ';
$objResponse = new xajaxResponse();
$objResponse->setCharEncoding('windows-1251');
$objResponse->addAssign("code","innerHTML",$code);
return $objResponse->getXML();
}
$xajax = new xajax();
$xajax->setCharEncoding("windows-1251");
$xajax->decodeUTF8InputOn();
$xajax->registerFunction("myFunc");
$xajax->processRequests();

?>
<html>
<head>
<?php $xajax->printJavascript('xajax'); ?>
</head>
<div id="code">
<script type="text/javascript">
xajax_myFunc();
</script>
</div>
</html>
 
кросспост?
http://phpclub.ru/talk/showthread.php?s=&threadid=95614&rand=1

догадаешься где поставить задержку?
 
не претендую на истину, но есть подозрение, что IE
ведет себя так, потому что аякс пытается изменить свойство элемента DOM, до того, как браузер выстроил некую парентовую ноду. Какую, и как глубоко не спрашивай, не знаю.
Нужно дать возможность ослу достроить DOM, а затем запускать аякс.
setTimeout('xajax_myFunc()',1000);

Кстати, может у кого есть еще решение?
Возможно запуск на событие onload для body?
Но не всегда это возможно.
 
поставил запуск setTimeout на onload для body. Результат тот же. Не хотелось бы отказываться от использования xajax из-за проблем с эксплорером :-(
 
автор

твой код работает. без всяких setTimeout
по крайней мере у себя проверил
фф 1,5,0,9
ИЕ 6,028,,,
опера 9,01

php apache mysql стоит на одном сервере.

вот инетерсно подробнее узнать, когда именно ошибка такая?

Internet explorer cannot open the internet site... Operation aborted"
ты уверен что именно на в этой части кода она появляется?
просто эта ошибка скорее всго из-за того, что твой XMLHttpRequestObject пытается установить соединение с удаленным сервером.
вот ИЕ и реагирует на это (точнее предусмотрено обработка исключительной ситуации в xajax, чтобы для пользователя выводилось понятное сообщение, вместо полного текста ошибки).

и еще (может ты и подправил у себя в коде, но хмтл страницу лучше писать сразу правильно... мало ли как там библиотека аякса написана... короче тег <body></body> у тебя отсутствует. по крайней мере в приведеном тобой примере. но я проверял код без этих тегов, но тем не менее писать надо валидный код)
 
ForestGump
Internet explorer cannot open the internet site... Operation aborted
Пока ие не построит всю страницу любые попытки (кроме write ) изменить ее будут приводить к такому результату
window.onload=function(){...}
или
document.body.onload=function(){...}
спасет тебя
 
Линка
А можно кусок кода, применительно к моей функции? С JS совсем плохо...
 
ForestGump
<script type="text/javascript">
window.onload=xajax_myFunc;</script>
если в xajax_myFunc надо передать параметр используй

window.onload=function(){xajax_myFunc(param);}
 
Линка
результат тот же. самостоятетельно код работает - это я проверил давно. сбой возникает при имплементации его в отдельный функционал...
 
Сверху