本文出处原文链接 转载请注明出处 http://www.cnblogs.com/havedream/p/4519538.html

问题来源:最近在学习easyui,观看的视频教程是孙宇的《EASYUI入门视频教程》  (点我下载),里面提到了console.info()这种方法,今天恰好遇到一位同事写的程序出现了不兼容IE的问题,或者说不兼容IE9及其以下版本浏览器,但是在google和火狐中运行良好,代码如下:

    onBeforeLoad: function (row, param) {
if (row) {
console.info(row.cenCi);
if(row.cenCi==0){
$(this).treegrid('options').url = *************************************;
}else if(row.cenCi==1){
if(row.isInject){
// alert("Inject");
$(this).treegrid('options').url = *********************************;
}else{
// alert("CITY-SRM");
$(this).treegrid('options').url = ***********************************;
} } } else{
$(this).treegrid('options').url = ***************************;
}
}

这是treeGrid的一个方法,点击之后加载某一行的子节点,但是就是这一部分代码,在IE9及以下版本出现问题。

问题描述:每次在IE9中打开页面,点击节点,发现没反应,然后F12,控制台调试,再次点击,问题消失了。。。。再次点击,发现怎么点击能打开,关闭控制台也没问题,但是每次重新打开浏览器就会有描述的问题。

解决方法:最开始我以为是onBeforeLoad的问题,这个方法在不同浏览器中的支持也是不一样的,不过后来发现即使我修改其他的方法,结果还是一样的,然后就开始怀疑关于console了,其实孙宇的课程中明确说了,console.info()在IE是会出错的,但是百度之后,发现自从IE8之后IE就已经支持console这种方法了,具体用法参见这里, 但是为什么孙宇老师说IE出错呢?仅仅是指的IE8之前的版本吗,我就仔细看了一下MSDN window.console具体的解释,其中有一句这样的话,

看到这里才恍然大悟,原来console.info()是需要打开一次控制台才能支持的,或者说在IE当中是不应该直接写console.info()的。

最终的代码应该是这样的

if (window.console){

  console.info(row.cenCi);
}

其实最好的习惯是:调试结束后直接删除这句话!发布干净的代码!

IE中console的正确使用方法的更多相关文章

  1. SpringBoot 中 @RequestBody的正确使用方法

    SpringBoot 中 @RequestBody的正确使用方法 最近在接收一个要离职同事的工作,接手的项目是用SpringBoot搭建的,其中看到了这样的写法: @RequestMapping(&q ...

  2. Spring MVC中Session的正确用法<转>

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  3. 【转】Spring MVC中Session的正确用法之我见

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  4. Spring MVC中Session的正确用法之我见

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  5. 关于vue中的videoPlayer的src视频地址参数动态修改(网上一堆错误方法,被误导很久,自己找到了正确的方法,供大家借鉴)

    方法很简单:相信大家的问题应该是改变src的值吧,动态赋值这一步简单.this.playerOptions['sources'][0]['src'] 就是这一步解决提取src问题,主要部分用绿色框起来 ...

  6. 正则表达式中的exec和match方法的区别

    正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...

  7. C#中dynamic的正确用法

    C#中dynamic的正确用法  http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html dynamic是FrameWork4 ...

  8. C++中内存泄漏的检测方法介绍

    C++中内存泄漏的检测方法介绍 首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复. 最简单的方法当然是借助于专业的检测工具,比较有名如BoundsCheck, ...

  9. .NET Core中使用RabbitMQ正确方式

    .NET Core中使用RabbitMQ正确方式 首先甩官网:http://www.rabbitmq.com/ 然后是.NET Client链接:http://www.rabbitmq.com/dot ...

随机推荐

  1. WCF和WebService中获取当前请求报文的方法

    WCF中: 1. 在hosting WCF的web.config中加入: <system.serviceModel> <serviceHostingEnvironment aspNe ...

  2. cshell学习

    一. 文件的读写执行: 1)读:可以显示该文件的内容 2)写:可以编辑或者删除它 3)执行:如果该文件是一个shell脚本或者程序. 如果希望一次设置目录下所有文件的权限,可使用:chmod 644 ...

  3. [Java] 01 String 内存分析

    public class StringTest{ public static void main(String[] args){ String str1 = new String("123& ...

  4. js判断正整数

    var r = /^\+?[1-9][0-9]*$/; //判断正整数 r.test(str);

  5. [SQL] 如何在SQL Server2005数据库中检查一个表是否存在,如存在就删除表记录,如不存在就建表.

    . 检索 dbo.sysobjects表, select count(*) from dbo.sysobjects where xtype='U' and Name = '你的表名' . 根据返回的结 ...

  6. 安装配置opensips

    opensips提供了一个视频教程(这个页面有下载链接,90M),参考教程 wget http://opensips.org/pub/opensips/1.9.1/src/opensips-1.9.1 ...

  7. Spark是一种分布式的计算方案

    Spark的安装基于HDFS,所以我们要设置hadoop的配置文件,所以spark的存储不是其主要的功能点,而spark作为分布式生态中的角色是一种计算模式(其他 的计算 模式,比如MR,Storm, ...

  8. Ubuntu - Grub2.0修改默认启动项

    1. 我的环境: Ubuntu 10.04   2. 关键位置和文件: /boot/grub/grub.cfg 文件: /etc/grub.d/ 目录: /etc/default/grub 文件:   ...

  9. Redis集群搭建&访问

    集群搭建步骤 1.创建多个节点: 2.为每个节点指派槽,并将多个节点连接起来,组成一个集群: 3.当集群数据库的16384个槽都有节点在处理时,集群进入上线状态: 要求:搭建一个包含6个节点的Redi ...

  10. HDU2063_过山车_C++

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2063 又是一道二分图匹配的裸题,直接上匈牙利算法 注意一点它末尾的0结束,是标志着有多组数据……坑…… # ...