【问题标题】:How can I use console.log on IE by using Modernizr.js [duplicate]如何使用 Modernizr.js 在 IE 上使用 console.log [重复]
【发布时间】:2014-04-24 00:00:33
【问题描述】:

谁能告诉我如何通过modernizr.js 在我的应用程序中使用console.log,它需要在几乎每个浏览器中打开。

当我尝试在 IE 8 中运行它时,它给了我一个控制台未定义的错误。

【问题讨论】:

  • 不,我的问题是强调使用modernizr.js...请帮助
  • console 是核心 JavaScript 类,这与modernizr.js 无关,虽然console 类。看看你只能处理错误的答案
  • @DanglingPointermodernizr.js 不会以任何方式帮助您。

标签: javascript internet-explorer modernizr


【解决方案1】:

你可以为 IE 创建一个简单的控制台 polyfill:

window.console = window.console || {
  log: function () {}
};

这对现代浏览器没有任何影响。它只会防止 IE 中未定义的控制台错误。

【讨论】:

  • 感谢您的回答,但是不,我需要找到一种方法来为此目的使用modernizr。
  • 请问为什么? AFAIK Modernizr 不进行控制台功能检测。
  • 不错。 Michal Dudak 先生...感谢您大开眼界的评论...您的答案已被选为最佳...
【解决方案2】:

您可以在页面https://github.com/paulmillr/console-polyfill 中包含console polyfill,如果console.log 不可用(例如:IE6),则添加空函数

你也可以试试 console.log 包装器https://github.com/patik/console.log-wrapper

【讨论】:

    【解决方案3】:

    Console.log 对象是某些浏览器(Firefox、Chrome、...)的功能

    在 IE 中 console.log 仅在您打开开发者工具 F12 后可用

    为避免这些错误,您必须检查是否存在:

    if ( window.console && window.console.log ) {
      // console is available
    }
    

    或者您可以创建一个控制台回退以避免每次在您的 .js 文件之上或在您的情况下在引用modernzer.js 之前编写以下代码时检查:

    window.console = window.console || { 
        log: function (msg) {
            alert(msg); //if you don't want alerts instead of logs comment this line
        }
    };
    

    【讨论】:

    • 我需要一个使用 modernizr.js 的答案。上面提到的答案是一个简单的 js 解决方案……但客户的要求是为此原因使用modernizr。
    • @DanglingPointer 在引用modernizr之前放了第二个sn-p
    • 略短window.console = window.console || {log: alert.bind(null)};
    猜你喜欢
    • 2012-09-23
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 2019-03-28
    • 2013-01-29
    • 2018-01-14
    • 2015-05-01
    • 2014-09-08
    相关资源
    最近更新 更多