Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   3 rows из xml в html через span. IE - ok, ff - noResult (https://javascript.ru/forum/css-html-firefox-mizilla/2952-3-rows-iz-xml-v-html-cherez-span-ie-ok-ff-noresult.html)

guest 03.03.2009 12:03

3 rows из xml в html через span. IE - ok, ff - noResult
 
выбираем 3 первые строчки из file.xml и заполняем ими html страницу
все просто - все работает, но только в ie, в ff не работает.
IE - v.6.0..., ff - v.3.0.6
ниже привожу текст всей страницы:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script for="window" event="onload">
doc=dsoNEWS.XMLDocument;
if(doc.readyState == 4) DisplayError();
else doc.onreadystatechange = DisplayError;
function DisplayError(){
    if(doc.readyState != 4) return;
    if(doc.parseError.errorCode){
        mess =
        "parseError.errorCode: " + doc.parseError.errorCode + "\n" +
        "parseError.filepos: " + doc.parseError.filepos + "\n" +
        "parseError.line: " + doc.parseError.line + "\n" +
        "parseError.linepos: " + doc.parseError.linepos + "\n" +
        "parseError.reason: " + doc.parseError.reason + "\n" +
        "parseError.srcText: " + doc.parseError.srcText + "\n" +
        "parseError.url: " + doc.parseError.url + "\n" +
        "";
        alert(mess);
    }
}
</script>
</head>

<body>
<XML ID="dsoNEWS" SRC="file.xml"></XML>
<div id="ResultDiv" name="ResultDiv"></div>
<script type="text/javascript">
var ResultHTML='<TABLE ID="NewsTable" DATASRC="#dsoNEWS" DATAPAGESIZE="3" border="0" width="99%" cellspacing="0" cellpadding="0"><TR><TD class="content"><div class="padding"><p style="font-size:1.0em; line-height:1.1em;"><SPAN id="DATE" DATAFLD="DATE"></SPAN></p><p style="font-size:1.2em; line-height:1.3em;"><SPAN id="POSTER" DATAFLD="POSTER"></SPAN></p><p id="dali"><a href=SPAN id="LINKS" DATAFLD="LINKS">...</a></p><div class="hr"><img src="http://javascript.ru/forum/images/spacer.gif" alt="" width="1" height="20" /></div></div></TD></TR></TABLE>';
ResultDiv.innerHTML = ResultHTML;
</script>
</body>
</html>

IIIEPJIOK 03.03.2009 12:24

скрипт написан тока для IE
<xml>, document.XMLDocument, document.onreadystatechange, document.parseError - все это только в IE, но все это кроме document.XMLDocument имеет аналоги в FF и прочих

guest 03.03.2009 12:31

спасибо, IIIEPJIOK, а сами аналоги, или хоть где искать

IIIEPJIOK 03.03.2009 12:44

<xml> - <iframe> c нулевыми размерами
document.onreadystatechange - document.onload
document.parseError - вообще другой принцип, если есть ошибка, то ФФ загружает сведения о ней в сам документ, создавая элемент <parserrror>. ДЛя ФФ и оперы - это корневой элемент, для ГуглХром и Сафари - не корневой. Поэтому ошибку отслеживать надо через
if(xmlDoc.getElementsByTagName('parsererror').length != 0){//то, что-то там}

Но Опера вообще может сказать только что есть ошибка, а какая и где она не знает, а ФФ и ГуглХром - описывают ее поразному, причем, если ФФ и ГуглХром на русском, то ФФ отдает ошибку на русском, а ГуглХром на буржуйском :)

В общем где-то так....

Я бы советовал, создавать js-ом новый XML документ и загружать в него то, что вам надо.

ЗЫ Могу поделиться готовым решением (но без разбора ошибок, если есть ошибка, то создается пустой документ и флаг наличия ошибки становится true)

guest 03.03.2009 13:34

спс за направление, IIIEPJIOK. Если есть готовое решение - дайте ссылку, посмотрю, может, поможет:)
Нашел на другом форуме работающий пример с iframe'ом, кому интересно:http://forum.dklab.ru/viewtopic.php?t=16055 - есть ссылка на zip корректно работающей версии примера для создания меню в html из xml, буду разбираться.

IIIEPJIOK 03.03.2009 22:49

Цитата:

Если есть готовое решение - дайте ссылку, посмотрю, может, поможет
Если еще надо, то могу тока архивом в почту и комментарии по аське :)

JSTalker 29.07.2009 15:10

похожая проблема, только FF не может добраться до нужного дочернего тега с данными в файле .xml

<level1>
<level1>
</level1>
</level1>


Часовой пояс GMT +3, время: 11:05.