刚学习javascript,写一个小游戏做练习,现在想要做一个配置文件,练习一下XML的操作……
进入正题:如下xml文件:profile.xml
<?xml version="1.0" ?>
<configuration>
<row>Hello</row>
<col>word!</col>
</configuration>在google搜索结果中出现频率比较高的一段代码:
javascript文件:test.js
var doc = loadXmlFile("profile.xml");
alert(doc.text);
function loadXmlFile(xmlFile){
var xmlDom = null;
if (window.ActiveXObject){
xmlDom = new ActiveXObject("Microsoft.XMLDOM");
//xmlDom.loadXML(xmlFile);//如果用的是XML字符串
xmlDom.load(xmlFile);//如果用的是xml文件。
}else if (document.implementation && document.implementation.createDocument){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET", xmlFile, false);
xmlhttp.send(null);
xmlDom = xmlhttp.responseXML;
}else{
xmlDom = null;
}
return xmlDom;
}这个方法在IE下能正常输出“hello word”,IE9、以及IE9的IE7、IE8的兼容模式都正常。
但是在firefox下输出的是“undefined”
而Chrome下则无输出,提示 xmlhttp.send(null);这行 Uncaught Error: NETWORK_ERR:XMLHttpRequest Exception 101还有一种方法是用JQuery
$.get('profile.xml',function(xml){
alert($(xml).text());
});
按理JQuery是兼容不同浏览器的,但是这段代码在IE7,8,9及Firefox下能正常输出
在Chrome下只弹出一个空警告框……
是Chrome有问题?还是其他的什么问题?等待高手解答……不甚感激……
进入正题:如下xml文件:profile.xml
<?xml version="1.0" ?>
<configuration>
<row>Hello</row>
<col>word!</col>
</configuration>在google搜索结果中出现频率比较高的一段代码:
javascript文件:test.js
var doc = loadXmlFile("profile.xml");
alert(doc.text);
function loadXmlFile(xmlFile){
var xmlDom = null;
if (window.ActiveXObject){
xmlDom = new ActiveXObject("Microsoft.XMLDOM");
//xmlDom.loadXML(xmlFile);//如果用的是XML字符串
xmlDom.load(xmlFile);//如果用的是xml文件。
}else if (document.implementation && document.implementation.createDocument){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET", xmlFile, false);
xmlhttp.send(null);
xmlDom = xmlhttp.responseXML;
}else{
xmlDom = null;
}
return xmlDom;
}这个方法在IE下能正常输出“hello word”,IE9、以及IE9的IE7、IE8的兼容模式都正常。
但是在firefox下输出的是“undefined”
而Chrome下则无输出,提示 xmlhttp.send(null);这行 Uncaught Error: NETWORK_ERR:XMLHttpRequest Exception 101还有一种方法是用JQuery
$.get('profile.xml',function(xml){
alert($(xml).text());
});
按理JQuery是兼容不同浏览器的,但是这段代码在IE7,8,9及Firefox下能正常输出
在Chrome下只弹出一个空警告框……
是Chrome有问题?还是其他的什么问题?等待高手解答……不甚感激……
你把问题通盘考虑一下就清楚了:
用JS的xhr对象,离线测试IE处理了不视为跨域所以OK;其他视为跨域就报错。
用JQUERY的AJAX,FF可能也处理了跨域问题所以OK;Chrome不成功可能也是视为跨域就报错了。你用JQ在http协议下上线试试不就知道什么原因了?如果可以,那就是Chrome确实认为离线时跨域了。
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e) {alert(e.message)}
}
try
{
xmlDoc.async=false;
xmlDoc.load(dname);
return(xmlDoc);
}
catch(e) {alert(e.message)}
return(null);
}function init() {
xmlDoc=loadXMLDoc("test.xml");}
操作xml跟操作html基本上是一样的.加载xml 分ie和非ie两种,
加载方式 有分同步和异步两种.具体的操作,你随便抓本js的书 都有的,我就不啰嗦了