我有下一个在IE中运行良好的代码:
xml=new ActiveXObject("MSXML2.DOMDocument");
xml.async=false
xml.load("docs.xml")
如何在其他浏览器中执行相同操作(不使用AJAX)?
答案 0 :(得分:1)
实际上,如果您的HTML和JavaScript将从本地媒体运行,那么没有AJAX 会有意义,因为您无法对file://
执行XMLHttp请求。在这种情况下,您必须使用其他方法来加载XML数据,而不是用于AJAX请求的标准方法。
在Gecko浏览器(Mozilla Firefox等)中,你可以使用
这样的东西xml = document.implementation.createDocument("","",null);
xml.load("docs.xml", "text/xml");
已知问题document.implementation.createDocument
未在Safari / Chrome / Webkit上实施,因此您可能不得不求助于在iframe中加载内容并访问contentDocument
对象。 iframe中。
答案 1 :(得分:0)
嗯......你不能用Javascript但不用AJAX。你已经使用了AJAX和你拥有的代码(无论如何都是微软的AJAX版本)。
我建议在AJAX上阅读Mozilla tutorial,以获得与您的代码交叉浏览器相同的内容。
答案 2 :(得分:0)
您可以在Firefox中使用DOMParser。
答案 3 :(得分:0)
假设您已经有可用的文本,那么没有ajax是有意义的。 xml.load(...)仍然使用异步调用来获取文档。如果您需要跨浏览器的XML解析器,您可以尝试:
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(text,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(text);
}
答案 4 :(得分:0)
根据您的使用案例,使用本地文件,您可以考虑反过来:加载“docs.xml”文件本身,并使用处理指令应用XSLT样式表将其呈现为HTML。
答案 5 :(得分:0)
我认为使用AJAX时感觉很困难。
在你的情况下,它包含更多的安全风险,现在,开发人员不会使用这种技术,因为它调用窗口组件,IE比其他浏览器更喜欢它。
因此,您应该研究有关ajax的更多信息,例如jquery或prototype,mootool,它们是非常强大的ajax框架,它们可以轻松应用您的需求。
祝你好运!