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);
    			}
    		}
    	   
    	}
    

      

  • 相关阅读:
    java学习day62-Spring boot整合Shiro配置
    java学习day62-springboot中的拦截
    java学习day62-DB项目-首页菜单动态显示
    疯狂学java的第26天
    疯狂学java的第25天
    疯狂学java的第24天
    疯狂学java的第23天
    疯狂学java的第22天
    疯狂学java的第21天
    疯狂学java的第20天
  • 原文地址:https://www.cnblogs.com/xuqp/p/9446925.html
Copyright © 2011-2022 走看看