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

 

时间: 2025-01-11 11:32:47

IE8的项目在IE11下 一些功能无法实现的解决方案的相关文章

IE8下的项目在IE11下某些功能无法实现的问题

在IE8和IE11 下获取数据的时间进行判断有些不同,也要根据浏览器的版本判断分别实现 $(".btndelete").children().children().click(function () { $(this).attr("target", "");  if (navigator.appName == "Microsoft Internet Explorer" && (navigator.appVers

asp.net项目在IE11下出现“__doPostBack”未定义的解决办法

最 近我们运营的网站有用户反馈在 IE 11 下<asp:LinkButton> 点击出现 “__doPostBack”未定义”,经过一番google,终于知道了原因:ASP.NET 可能无法辨识出一些浏览器的最新版本,还会经常把它们看做是低级的浏览器.(也就是: 不支持JavaScript.)  详见: http://blogs.msdn.com/b/scott_hanselman/archive/2011/10/28/asp-net-ie10-dopostback-javascript-f

IE11下的NPOI导出提示__doPostBack未定义解决方案

asp.net项目在IE11下出现“__doPostBack”未定义的解决办法 在项目根目录 App_Browsers(没有就新建这个文件夹) 下新建 浏览器文件(.browser),让其与IE11的 UserAgent 匹配,使 .net framework 认识这是一个已知的浏览器,可以正常地向客户端输出脚本. 在文件里输入以下内容,保存即可.<browsers><browser id="IE11" parentID="Mozilla">

vue项目在IE下报 [vuex] vuex requires a Promise polyfill in this browser问题

如下图所示,项目在IE11下打开报错: 因为使用了 ES6 中用来传递异步消息的的Promise,而IE浏览器都不支持. 解决方法: 第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 $ npm install --save babel-polyfill npm WARN ajv[email protected] requires a peer of [email protected]^6.0.0 but none

IE11下Forms身份认证无法保存Cookie的问题

ASP.NET中使用Forms身份认证常见的做法如下: 1. 网站根目录下的Web.config添加authentication节点 <authentication mode="Forms"> <forms name="MyAuth" loginUrl="manager/Login.aspx" defaultUrl="manager/default.aspx" protection="All&quo

研发范围和时间的“信息透明化”之多项目多平台下的协作与流程

这是研发范围和时间"信息透明化"系列的第三篇文章,在<研发范围和时间的"信息透明化"之Redmine统一平台>中我们讨论了信息透明化的一种实现平台Redmine,在<研发范围和时间的"信息透明化"之协作与流程>中我们对如何基于一个产品/项目和一套信息管理平台进行信息透明化管理的协作与流程做了详细阐述.对研发信息透明化而言,现实中情况可能会比较复杂: 由于历史遗留问题等因素,团队中可能会使用一种以上的平台进行研发信息和过程管

IE11下ASP.NET Forms身份认证无法保存Cookie的问题

IE11下ASP.NET Forms身份认证无法保存Cookie的问题 折腾了三四天,今天才找到资料,解决了. 以下会转贴,还没来得及深究,先放着,有空再学习下. ASP.NET中使用Forms身份认证常见的做法如下: 1. 网站根目录下的Web.config添加authentication节点 <authentication mode="Forms"> <forms name="MyAuth" loginUrl="manager/Log

IE11下,CKEditor在Bootstrap Modal中的下拉问题

原问题解决方案链接:http://ckeditor.com/forums/CKEditor/Editor-Dropdowns-dont-work-in-IE11 最近在项目中需要在Bootstrap Modal弹出框中载入CKEditor. 初始化CKEditor以后,在IE11下,格式/字体/颜色的下拉会闪现一下后就消失,但在chrome和firefox下没问题. Google了以后终于找到解决方法. 以下代码添加了$(e.target.parentNode).hasClass('cke_co

[转]Forms身份认证在IE11下无法保存Cookie的问题

转自:http://www.jb51.net/article/49744.htm 这篇文章主要介绍了Forms身份认证在IE11下无法保存Cookie问题的解决方法,需要的朋友可以参考下 ASP.NET中使用Forms身份认证常见的做法如下: 1. 网站根目录下的Web.config添加authentication节点 <authentication mode="Forms"> <forms name="MyAuth" loginUrl="