如何在非IE浏览器中使用JavaScript加载xml文件?
我有下一个在IE中运行良好的代码:如何在非IE浏览器中使用JavaScript加载xml文件?,javascript,xml,Javascript,Xml,我有下一个在IE中运行良好的代码: xml=new ActiveXObject("MSXML2.DOMDocument"); xml.async=false xml.load("docs.xml") 如何在其他浏览器中实现同样的功能(没有AJAX?嗯。。。如果没有AJAX,就无法使用Javascript实现这一点。您已经将AJAX与现有代码一起使用(无论如何,是Microsoft版本的AJAX) 我建议您阅读AJAX上的跨浏览器代码。您可以与Firefox一起使用。事实上,如果您的HTML和J
xml=new ActiveXObject("MSXML2.DOMDocument");
xml.async=false
xml.load("docs.xml")
如何在其他浏览器中实现同样的功能(没有AJAX?嗯。。。如果没有AJAX,就无法使用Javascript实现这一点。您已经将AJAX与现有代码一起使用(无论如何,是Microsoft版本的AJAX) 我建议您阅读AJAX上的跨浏览器代码。您可以与Firefox一起使用。事实上,如果您的HTML和JavaScript将从本地媒体运行,那么没有AJAX是有意义的,因为您无法对
文件执行XMLHttp请求://
。在这种情况下,除了用于AJAX请求的标准方法外,您必须求助于其他方法来加载XML数据
在Gecko浏览器(Mozilla Firefox等)中,您可以使用
xml = document.implementation.createDocument("","",null);
xml.load("docs.xml", "text/xml");
众所周知,
document.implementation.createDocument
没有在Safari/Chrome/Webkit上实现,因此您可能不得不在iframe中加载内容,并访问iframe的contentDocument
对象。如果您已经有可用的文本,那么不使用ajax是有意义的。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);
}
根据您的用例,使用本地文件,您可以考虑另一种方式:加载“DOCS.XML”文件本身,并使用处理指令将XSLT样式表应用到HTML中。
我想你在使用AJAX时会感到困难 在您的情况下,它包含更多的安全风险,现在,开发人员不会使用这种技术,因为它调用窗口的组件,IE比其他浏览器更喜欢它 所以,您应该研究更多关于ajax的信息,比如jquery或prototype、mootool,它们是非常强大的ajax框架,可以轻松地应用您的需求
祝你好运 “没有Ajax”是什么意思?我是说没有使用XMLHttpRequest对象。为什么不呢?你已经在使用ActiveXObject…Miguel Ventura在回答的第一段中描述了原因。在这种情况下,我需要从本地媒体运行它。我已经有类似的东西,但我的“文本”在一个文件中,我需要以某种方式加载它。如果它在一个文件中,而该文件不包含在页面中,这意味着您必须请求文件…根据定义,这意味着您正在通过Javascript发出异步请求并请求Xml文档…您必须使用AJAX mate。