我必须使用
HTML5 / CSS3 /
JavaScript创建一个项目,并使用XML作为数据提供者.
要求声明它必须与Internet Explorer,Firefox,Safari和Chrome兼容.
我正在开发Firefox,所以工作得很好.
Safari也像一种款待一样,幸运的是它在新的IE9中也很完美.
我只是遇到了让它在Chrome中运行的问题.
由于Chrome似乎支持许多新的HTML5 / CSS3功能,因此在该浏览器中运行它也不应该太多.
唯一的问题是它拒绝加载XML文件,因为从一开始就需要这样做,所以整个事情都不会加载.
在做了一些研究后,我发现帖子说明Chrome不允许您加载本地XML文件.
它应该在不使用Apache或任何东西的情况下脱机工作,那么还有什么方法可以让它工作吗?
我根据所使用的浏览器加载XML的代码片段:
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
// INTERNET EXPLORER
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
try {
xmlDoc.async="true";
xmlDoc.load("exercise1.xml");
} catch(ex) {
alert("exception");
alert(ex.message);
}
}else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
// MOZILLA FIREFOX
// load xml file
xmlDoc=loadXMLDoc("exercise1.xml");
}else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
// GOOGLE CHROME
// load xml file
// ????????
}else if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
// OPERA
alert("Opera is not supported as of now");
}else if (browser.toLowerCase().indexOf('safari') > 0){
// APPLE SAFARI
// load xml file
xmlDoc=loadXMLDoc("exercise1.xml");
} else {
// OTHER BROWSERS
// load xml file
xmlDoc=loadXMLDoc("exercise1.xml");
}
Firefox和Safari使用外部JavaScript加载XML.
我不认为在这里发布代码是非常必要的,因为它在这些浏览器中运行得非常好.
也许我忽略了一些简单的东西,但我已经做了一些谷歌搜索,并尝试了一些在Stackoverflow上找到的代码,我仍然无法让它工作..
最佳答案 您可以使用XMLHttpRequest在Chrome中加载XML文件,如下所示:
(在Chrome 12.0.742.112上测试).
function readxml()
{
xmlHttp = new window.XMLHttpRequest();
xmlHttp.open("GET","test.xml",false);
xmlHttp.send(null);
xmlDoc = xmlHttp.responseXML.documentElement;
}
这是Chrome开发工具中看到的xmlDoc.
确保在服务器上有一个有效的XML文档.
<?xml version='1.0'?>
必须在XML的第一行,并检查标记之前没有空格.