`
風一樣的男子
  • 浏览: 62463 次
  • 性别: Icon_minigender_1
  • 来自: 粤东北山卡拉
社区版块
存档分类
最新评论

Firefox 下兼容IE操纵 XMLDocument 方式

阅读更多
开发中遇到要兼容FF,其中 IE 操纵 XMLDocument 的一些方法及属性 FF 下都没有
后来网上搜索参考在 js 里加入如下代码解决问题

if(!document.all){
	// 为 XMLDocument 添加 loadXML 方法
	XMLDocument.prototype.loadXML = function(xmlString){
		var childNodes = this.childNodes;
		for (var i = childNodes.length - 1; i >= 0; i--){
			this.removeChild(childNodes[i]);
		}
		var dp = new DOMParser();
 		var newDOM = dp.parseFromString(xmlString, "text/xml");
 		var newElt = this.importNode(newDOM.documentElement, true);
 		this.appendChild(newElt);
 	}
	 // prototying the XMLDocument
    XMLDocument.prototype.selectNodes = function(cXPathString, xNode){
    	if( !xNode ) { xNode = this; } 
        var oNSResolver = this.createNSResolver(this.documentElement)
        var aItems = this.evaluate(cXPathString, xNode, oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
        var aResult = [];
        for( var i = 0; i < aItems.snapshotLength; i++){
        	aResult[i] =   aItems.snapshotItem(i);
        }
        return aResult;
    }
    // prototying the Element
    Element.prototype.selectNodes = function(cXPathString){
    	if(this.ownerDocument.selectNodes){
    		return this.ownerDocument.selectNodes(cXPathString, this);
        }else{throw "For XML Elements Only";}
    }
    XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode) { 
    	if( !xNode ) { xNode = this; } 
        var xItems = this.selectNodes(cXPathString, xNode);
        if(xItems.length > 0){
        	return xItems[0];
        }else{
        	return null;
        	}
    }
    // prototying the Element
    Element.prototype.selectSingleNode = function(cXPathString) {
    	if(this.ownerDocument.selectSingleNode){
    		return this.ownerDocument.selectSingleNode(cXPathString, this);
    	}else{throw "For XML Elements Only";}
    }
    // 为 Firefox 下的 Node 添加 text 属性
	Element.prototype.__defineGetter__( "text",  function(){
			return this.textContent;
		}
	); 
}
分享到:
评论

相关推荐

    让IE和火狐同时兼容

    特别是在早期的Web时代,Internet Explorer(简称IE)与Mozilla Firefox(简称火狐)这两款浏览器之间存在着显著的差异,这使得页面设计师不得不花费大量时间去解决它们之间的兼容性问题。本文将详细介绍如何使网站...

    在Firefox下直接调用IE浏览器(IETab这个插件).zip

    总的来说,IETab是Firefox用户的一个实用工具,它通过在Firefox内嵌入IE的渲染引擎,使得用户可以在不离开Firefox的情况下访问那些只支持IE的网站。这对于需要在多个浏览器间频繁切换的用户来说,无疑提高了工作效率...

    javascript在IE和Firefox中兼容性问题

    IE提供了ActiveXObject,可以创建XMLDOM对象,如`new ActiveXObject("MSXML2.DOMDocument")`,而Firefox和其他遵循W3C标准的浏览器则使用`document.implementation.createDocument()`方法。 2. **ChildNodes测试....

    Firefox和IE兼容参考

    在网页开发过程中,Firefox(火狐浏览器)和Internet Explorer(IE浏览器)的兼容性问题一直是一大挑战。这两个浏览器在解析HTML、CSS以及JavaScript时有着不同的实现方式,导致某些代码在Firefox下正常运行,但在IE...

    Javascript的IE和Firefox(火狐)兼容性

    ### Javascript的IE与Firefox(火狐)兼容性解决方案 在Web开发过程中,浏览器兼容性问题一直是开发者们关注的重点之一。由于不同的浏览器对于Web标准的支持程度存在差异,这导致了同样的代码在不同浏览器中的表现...

    JavaScript在IE和Firefox(火狐)的不兼容问题解决

    这表明文章旨在探讨并提供解决方案来处理在不同浏览器环境下的JavaScript兼容性问题,尤其是在Internet Explorer(IE)和Mozilla Firefox(火狐)这两个浏览器上。下面将深入解析文件中的部分代码示例,以及给出的一...

    ie firefox 兼容问题大全

    ### IE与Firefox兼容性问题详解 #### 一、概述 在网页开发过程中,浏览器兼容性问题一直是前端开发者面临的重要挑战之一。尤其是对于早期版本的Internet Explorer(简称IE)与Mozilla Firefox(简称Firefox)来说...

    Javascript的IE和Firefox兼容性参考

    JavaScript是一种广泛应用于网页开发的脚本语言,但在不同的浏览器中,其执行方式可能存在差异,特别是老版本的Internet Explorer(IE)和Firefox。由于历史原因,IE对某些特性有着独特的实现,而Firefox则遵循更...

    兼容IE6,IE7,IE8和Firefox的图片上传预览效果

    由于早期的Internet Explorer(IE6, IE7, IE8)对现代Web标准的支持不足,而Firefox则采用了不同的实现方式,因此创建一个在这些浏览器上都能正常工作的图片上传预览功能并非易事。 图片上传预览功能是让用户在上传...

    IE与Firefox的CSS兼容大全

    在网页设计中,CSS(层叠样式表)的兼容性是一个关键问题,特别是对于历史悠久的Internet Explorer(IE)和相对现代的Firefox浏览器。由于这两者对CSS标准的解析方式不同,开发者经常面临兼容性挑战。以下是一些针对...

    IE6.0、IE7.0 与FireFox CSS兼容的解决方法

    在网页设计中,CSS(层叠样式表)的兼容性问题常常困扰着开发者,尤其是在处理IE6.0、IE7.0与Firefox等不同浏览器之间的差异。以下是一些解决这些浏览器间CSS兼容问题的方法: 1. **DOCTYPE声明**:DOCTYPE声明会...

    兼容IE和Firefox获得keyBoardEvent对象

    兼容IE和Firefox获得keyBoardEvent对象 在 JavaScript 编程中,获得keyBoardEvent对象是非常重要的,但是不同的浏览器对其支持不同。IE和Firefox是两种最常用的浏览器,它们对keyBoardEvent对象的支持存在一定的...

    兼容firefox火狐、IE6IE7IE8加入收藏,设为首页代码

    总结来说,为了在Firefox火狐和旧版IE浏览器中实现“加入收藏”和“设为首页”的功能,需要编写兼容不同浏览器的JavaScript代码。上述代码提供了实现这两个功能的基本框架,但请注意,随着浏览器的更新和新功能的...

    IE FIREFOX兼容性测试

    本文将深入探讨“IE FIREFOX兼容性测试”这一主题,旨在帮助开发者更好地理解和解决不同浏览器间存在的兼容性问题。 首先,我们来理解标题“IE FIREFOX兼容性测试”的含义。这指的是针对Internet Explorer(IE)和...

    ie与firefox兼容文档

    例如,IE的`document.all`属性在Firefox中不存在,而Firefox的`window.getSelection()`在旧版IE中可能无效。 为了解决这些问题,开发者可以采用以下策略: 1. **使用条件注释**:在HTML中,可以使用IE条件注释来...

    JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)

    "JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)"是一个专门为JavaScript环境设计的,旨在解决跨浏览器兼容性问题的日期选择工具。这个组件的目标是确保在不同浏览器如Internet Explorer(IE)、Firefox、...

    Mozzila Firefox与IE的兼容问题

    "Mozzila Firefox与IE的兼容问题" Mozzila Firefox与IE的兼容问题是Web开发中常见的问题,因为这两个浏览器在解析HTML、CSS和JavaScript时有着不同的实现机制。以下是IE和Firefox之间的一些常见的兼容问题: 1. ...

    Firefox IE Tab

    "Firefox IE Tab"是一款专为火狐浏览器设计的扩展,它允许用户在Firefox中以Internet Explorer内核的方式浏览网页。这个扩展对于那些需要在不同浏览器环境中测试网站兼容性的开发者或者经常在两个浏览器间切换的用户...

Global site tag (gtag.js) - Google Analytics