Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在非IE浏览器中使用JavaScript加载xml文件?_Javascript_Xml - Fatal编程技术网

如何在非IE浏览器中使用JavaScript加载xml文件?

如何在非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

我有下一个在IE中运行良好的代码:

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。