【发布时间】:2010-12-20 20:20:15
【问题描述】:
我使用以下代码打开一个 XML 文档。它在 Firefox 和 IE 中有效,但在 Safari 中失败。知道为什么吗?
function crearObjetoXML(archivoXML){
//--- IE.
if(window.ActiveXObject){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load(archivoXML);
parsearXML();
//--- FF.
}else if(document.implementation && document.implementation.createDocument){
xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.load(archivoXML);
xmlDoc.onload = parsearXML;
}else{
alert ('Su navegador no puede soportar este script');
}
}
function parsearXML(){
numrows = xmlDoc.getElementsByTagName('advertise')[0].childNodes.length;
lnks1 = new Array(numrows);
for (var i=0;i<=numrows-1;i++)
{
lnks1[i] = xmlDoc.getElementsByTagName('advertise')[0].getElementsByTagName('item')[i].getAttribute('link');
}
}
crearObjetoXML('../imagerotatorxml.php');
【问题讨论】:
-
嗨:不是 IE 并不一定意味着它是 firefox。恐怕 Safari 使用了另一种关于 javascript 引擎的不同实现。就个人而言,我想使用 jQuery 作为更安全的选择,因为它几乎隐藏了实际的细节。也许 Google for jQuery load xml 文件会帮助您解决这个问题?抱歉,这不是直接回答您的问题。
-
哪个版本的 safari 不工作? quirksmode.org/dom/w3c_core.html#miscellaneous 显示 safari(那些经过测试的版本)据说有一个工作 document.implementation.createDocument。你可以在quirksmode.org/dom/tests/implementation.html#createDocument()进行测试
-
我正在使用 Safari 4.0.4(531.21.10)
标签: javascript xml safari cross-browser