首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

急救,一个在IE和FF下的Dom的奇怪有关问题

2012-03-22 
急救,一个在IE和FF下的Dom的奇怪问题。返回的内容是:ContentVersion 1.0 MessageCode 3 /MessageCo

急救,一个在IE和FF下的Dom的奇怪问题。
返回的内容是:

<Content   Version= "1.0 ">
<MessageCode> 3 </MessageCode>
<MessageString> 0.3249516 </MessageString>
</Content>

============================================
//其他代码没问题的,就是创建XMLHttpRequest,两个浏览器都可以。
function   onReadyState()
{
var   ready   =   REQ.readyState;
if(ready==READY_STATE_COMPLETE){
DOM=REQ.responseXML;
                                    //如果这里创建一个Dom,再load(REQ.responseXML),在FF下连DOM.documentElement都是null了
User_XmlDocument();
}else{
//loading......
}
}


function   User_XmlDocument()
{
var   XmlRoot   =   DOM.documentElement;
                  在ie下:
                  XmlRoot   的childNodes.length是2;
                  XmlRoot.childNodes[0],XmlRoot.childNodes[1],这样获取正常。

                  在FF下:
                  XmlRoot   的childNodes.length是5;
                  XmlRoot.childNodes[1],XmlRoot.childNodes[3],这样获取正常。

//郁闷的就在这里,为什么REQ.responseXML的结果一样,但在ie和ff下,XmlRoot的子节点的长度一个是2,一个是5?
而且在FF下,为什么是子节点1和3,不是0,1??????
极度郁闷!!
请高手看看,为什么?
}


[解决办法]
关注
[解决办法]
FF没用过。帮顶

[解决办法]
不知道有没有在创建XmlHttpRequest对象的时候判断浏览器的类型
从而创建不同的XmlHttpRequest对象
[解决办法]
疑点一:
你没有在创建XmlHttpRequest对象的时候去判断是否是FF
代码如下
if(window.XMLHttpRequest)
{
//Mozilla 浏览器
xRequest= new XMLHttpRequest();
if(xRequest.overrideMimeType)
{
//设置 MIME 类别
xRequest.overrideMimeType( "text/html ");
}

疑点二:
DOM=REQ.responseXML;//这句话,也不知道你的DOM是在哪申明的
========
IE和FF中创建xmlDom的方法不同。
FF中创建
var Dom= [ "MSXML2.DOMDocument ", "Microsoft.XMLDOM ", "MSXML.DOMDocument ", "MSXML3.DOMDocument "];
IE中创建xmlDom申明
var Dom = new ActiveXObject( "Microsoft.XmlDom ");


热点排行