|
最近整理浏览器兼容的问题,搞的实在头大,在前人的帮助之下,还是有点进展,下面帖一些代码,我想会比较有用
复制代码 代码如下: var isIE = ????; // 全局变量,判断是否ie,自完善 // new dom 方法 function parseXML(st){ if (isIE){ var result = new ActiveXObject( "microsoft.XMLDOM" ); result.loadXML(st); } else { var parser = new DOMParser(); var result = parser.parseFromString(st, "text/xml" ); } return result; } if ( ! isIE){ var ex; // 定义节点xml属性 XMLDocument.prototype.__proto__.__defineGetter__( "xml" , function (){ try { return new XMLSerializer().serializeToString( this ); } catch (ex){ var d = document.createElement( "div" ); d.appendChild( this .cloneNode( true )); return d.innerHTML; } }); Element.prototype.__proto__.__defineGetter__( "xml" , function (){ try { return new XMLSerializer().serializeToString( this ); } catch (ex){ var d = document.createElement( "div" ); d.appendChild( this .cloneNode( true )); return d.innerHTML; } }); //定义节点text属性 XMLDocument.prototype.__proto__.__defineGetter__( "text" , function (){ return this .firstChild.textContent }); Element.prototype.__proto__.__defineGetter__( "text" , function (){ return this .textContent }); // 定义selectSingleNode、selectNodes 方法 XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath){ var x = this .selectNodes(xpath) if ( ! x || x.length < 1 ) return null ; return x[ 0 ]; } XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath){ var xpe = new XPathEvaluator(); var nsResolver = xpe.createNSResolver( this .ownerDocument == null ? this .documentElement : this .ownerDocument.documentElement); var result = xpe.evaluate(xpath, this , nsResolver, 0 , null ); var found = []; var res; while (res = result.iterateNext()) found.push(res); return found; }
}
|
|