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

ForestGump

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

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

maxwell

artifex
ForestGump
Я себе недавно дверь поставил, внутрь открываицо а наружу нет.
Кто-то сталкивался? Поможете?

А теперь по теме.
Напиши хоть что ты выводишь, как выводишь и тд.
 

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>
 

chulim

Новичок
кросспост?
http://phpclub.ru/talk/showthread.php?s=&threadid=95614&rand=1

догадаешься где поставить задержку?
 

chulim

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

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

ForestGump

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

RoLex

Новичок
автор

твой код работает. без всяких 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(){...}
спасет тебя
 

ForestGump

Новичок
Линка
А можно кусок кода, применительно к моей функции? С JS совсем плохо...
 

Линка

Новичок
ForestGump
<script type="text/javascript">
window.onload=xajax_myFunc;</script>
если в xajax_myFunc надо передать параметр используй

window.onload=function(){xajax_myFunc(param);}
 

ForestGump

Новичок
Линка
результат тот же. самостоятетельно код работает - это я проверил давно. сбой возникает при имплементации его в отдельный функционал...
 
Сверху