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> |
скрипт написан тока для IE
<xml>, document.XMLDocument, document.onreadystatechange, document.parseError - все это только в IE, но все это кроме document.XMLDocument имеет аналоги в FF и прочих |
спасибо, IIIEPJIOK, а сами аналоги, или хоть где искать
|
<xml> - <iframe> c нулевыми размерами
document.onreadystatechange - document.onload document.parseError - вообще другой принцип, если есть ошибка, то ФФ загружает сведения о ней в сам документ, создавая элемент <parserrror>. ДЛя ФФ и оперы - это корневой элемент, для ГуглХром и Сафари - не корневой. Поэтому ошибку отслеживать надо через if(xmlDoc.getElementsByTagName('parsererror').length != 0){//то, что-то там} Но Опера вообще может сказать только что есть ошибка, а какая и где она не знает, а ФФ и ГуглХром - описывают ее поразному, причем, если ФФ и ГуглХром на русском, то ФФ отдает ошибку на русском, а ГуглХром на буржуйском :) В общем где-то так.... Я бы советовал, создавать js-ом новый XML документ и загружать в него то, что вам надо. ЗЫ Могу поделиться готовым решением (но без разбора ошибок, если есть ошибка, то создается пустой документ и флаг наличия ошибки становится true) |
спс за направление, IIIEPJIOK. Если есть готовое решение - дайте ссылку, посмотрю, может, поможет:)
Нашел на другом форуме работающий пример с iframe'ом, кому интересно:http://forum.dklab.ru/viewtopic.php?t=16055 - есть ссылка на zip корректно работающей версии примера для создания меню в html из xml, буду разбираться. |
Цитата:
|
похожая проблема, только FF не может добраться до нужного дочернего тега с данными в файле .xml
<level1> <level1> </level1> </level1> |
Часовой пояс GMT +3, время: 11:05. |