zoukankan      html  css  js  c++  java
  • firefox chrome ie9,10,11 不支持selectSingleNode和selectNodes的解决方法

    firefox并不支持selectSingleNode和selectNodes的解决方法

    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);   
                 }   
             }   
              
         }  
  • 相关阅读:
    Html列表分页算法
    .Net分布式锁
    Net中的常见的关键字
    C# 操作windows服务[启动、停止、卸载、安装]
    虚拟机设置静态IP与配置网络
    WebService服务介绍与调用
    StackService.Redis 应用
    Centos+Redis 集群
    浏览器LocalStroage使用
    WCF与WebService的区别(转)
  • 原文地址:https://www.cnblogs.com/meetrice/p/3813266.html
Copyright © 2011-2022 走看看