zoukankan      html  css  js  c++  java
  • firefox并不支持selectSingleNode和selectNodes的解决方法

    转自:http://qsrock.iteye.com/blog/209585

     

    function test(){
    		var perid = document.thisForm.PerID.value;
    		
    		var xml="test";
    		 if(window.ActiveXObject){   
    	        var xml=new ActiveXObject("Microsoft.XMLDOM");
    			xml.async=false;
    			xml.load("xxxx.xml");
    			
    	        
    	    }else if((typeof document.implementation != 'undefined')&&
    	    	(typeof document.implementation.createDocument!='undefined')){   
    	        xml = document.implementation.createDocument("", "", null);
    
    			xml.async=false;
    			xml.load("xxxx.xml");
    
    			
    			//firefox并不支持selectSingleNode和selectNodes方法;下面两段是用XPath来解决firefox模拟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;
    		    }
    			
    			
    	    }  
    		//下面就可以用selectSingleNode和selectNodes方法
    		var row=null;
    	
    		if(perid.substring(0,5)=="NO" && perid.length==9){
    			row=xml.selectSingleNode("root/row[@ID='"+perid+"']");
    			if (row!=null){
    				document.thisForm.MenuColor.value=row.getAttribute("CssFileName");
    				ChangeBgColor(document.thisForm.MenuColor.value);
    			}
    		}
    	   
    	}
    

      

  • 相关阅读:
    【NOIP2009提高组】最优贸易
    matlab数字图像处理-给图片加入可视水印信息
    数字水印技术
    matlab数据插值
    matlab中的多项式计算
    python中圆周率的计算
    python中random库的使用
    python的循环结构
    python身体指数BMI
    python程序控制--分支结构
  • 原文地址:https://www.cnblogs.com/xuqp/p/9446925.html
Copyright © 2011-2022 走看看