zoukankan      html  css  js  c++  java
  • IE8的项目在IE11下 一些功能无法实现的解决方案

    最近改了一些IE11下一些功能无法实现的项目,发现了有一些IE8下的方法 ,在IE11下被取消或者替代了,如下:

    1.JavaScript 运行时错误: 对象不支持“attachEvent”属性或方法;

    attachEvent 这个方法在IE11下改成了addEventListener ,所以我这里加了浏览器版本判断 才得以实现了IE8 和IE11下都好用

     if (navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.match(/8./i) == "8." || navigator.userAgent.indexOf("MSIE 8.0") > 0 || navigator.appVersion.match(/7./i) == "7.")) {
                     window.attachEvent("onload", OverrideBaseFunction);
          } else {
                     window.addEventListener("onload", OverrideBaseFunction);
         }

    2.无法获取未定义或 null 引用的属性“tags”

       因为这里引用了Jquery,但是在下面没有用到

       源代码: var radios=document.body.all.tags("INPUT"); 

                     for(var i=0;i<radios.length;i++)
                        {
               if(radios[i].type=="radio")
                    {
              if(radios[i].checked)
                  {
                type=radios[i].value;
                              break;
               }
            }
       }

    改成:

             type =$('input:radio[name*="type"]:checked').val();    因为引用的是Jquery但是没有使用到,所用用Jquery写一句话

              var inputs=document.getElementById("cblProcess").all.tags("INPUT");
               var isOne=false;
                for(var i=0;i<inputs.length;i++)
                {
                if(inputs[i].type=="checkbox"&&inputs[i].checked)
                 {
                 isOne=true;
               break;
                }
             }

    3.JavaScript 运行时错误: 无法获取未定义或 null 引用的属性“tags”

                 源代码: var tds=tr.all.tags("TD");

                             var result="";
                         for(var i=0;i<tds.length;i++)
                              {
                           var tdText=tds[i].innerText;
                                 if(i>0)
                             result+=";"+tdText;
                                else
                           result+=tdText;
                         }

          

                  改成:var result ="";
                          $(tr).each(function(){
                          $(this).children("TD").text(function(i,text){
                             if(i>0 && text !="")
                               {
                             return ";" + text;
                                }
                            });
                       result = $(this).children("TD").text();
                         $(this).children("TD").text(function(i,text){
                        if(i>0 && text !="")
                      {
                    return text.substr(1);
                     }
                 });
           });

     

  • 相关阅读:
    十四
    十三
    十二
    十一
    用Linq从一个集合选取几列得到一个新的集合-可改列名
    LINQ入门(完结篇)
    LINQ入门(下篇)
    LINQ入门(中篇)
    LINQ入门(上篇)
    MVC中View往Controllers传数据的方式-已发
  • 原文地址:https://www.cnblogs.com/ma-s-e-n-11/p/4846539.html
Copyright © 2011-2022 走看看