66beta
V2EX  ›  问与答

chrome 的 console.log() 返回 undefined 怎么办?

  •  
  •   66beta · Nov 20, 2014 · 12519 views
    This topic created in 4195 days ago, the information mentioned may be changed or developed.
    可能被其他JS库覆盖了,不能调试了,咋办?
    Supplement 1  ·  Nov 20, 2014
    对不起没写清楚,是console.log('xxx');返回undefined。
    Supplement 2  ·  Nov 21, 2014
    console.log('abc'); 应该显示abc,但是没显示,只返回了undefined
    21 replies    2014-11-21 09:46:54 +08:00
    lizheming
        1
    lizheming  
       Nov 20, 2014
    console.error
    console.warn
    console.table
    这么多呢..别吊死在一棵树上上..
    lizheming
        2
    lizheming  
       Nov 20, 2014   ❤️ 1
    如果console都被覆盖了的话也可以自己做调试输出啊..具体查看: http://segmentfault.com/blog/laopopo/1190000000731903
    FrankFang128
        3
    FrankFang128  
       Nov 20, 2014
    本来就是返回 undefined 啊。
    什么叫不能调试呢?请详述。
    是在不行请用 debugger 调试
    Mutoo
        4
    Mutoo  
       Nov 20, 2014
    console = null; // that's evil;
    learnshare
        5
    learnshare  
       Nov 20, 2014
    哪个库这么牛,直接删除 console 来退出 debug 模式...
    clino
        6
    clino  
       Nov 20, 2014
    这不返回undefined会返回什么呢?

    console.log()
    undefined
    Jaylee
        7
    Jaylee  
       Nov 20, 2014
    @learnshare 任何一个都可以吧, console = null; 就可以

    console.log的返回值就是undefined
    typcn
        8
    typcn  
       Nov 20, 2014   ❤️ 1
    写一个扩展,在页面加载完成前运行脚本。var xxx = console

    然后通过chrome的api把这个xxx导入到页面里
    learnshare
        9
    learnshare  
       Nov 20, 2014
    @Jaylee 主要是这个办法影响了其他使用该功能的 JS,完全是不明智的做法
    livelazily
        10
    livelazily  
       Nov 20, 2014 via Android   ❤️ 1
    创建一个 iframe 对象,iframe.contentWindow.console 就是完整的每被覆盖的 console
    66beta
        11
    66beta  
    OP
       Nov 20, 2014
    @FrankFang128
    是console.log('xxx');返回undefined,这样就不方便在js里面在console里显示json了~
    spance
        12
    spance  
       Nov 20, 2014   ❤️ 1
    delete console.log;
    // chrome.
    console.log(XXXX);
    Mutoo
        13
    Mutoo  
       Nov 20, 2014
    >> console.log(JSON.stringify({a:1,b:2}, null, 2));
    {
    "a": 1,
    "b": 2
    }
    << undefined
    FrankFang128
        14
    FrankFang128  
       Nov 21, 2014 via Android   ❤️ 1
    估计某个库写了
    console = ...
    那样的话就没救了。

    你可以在HTML head第一行写 _console = console
    idgnarn
        15
    idgnarn  
       Nov 21, 2014 via iPhone   ❤️ 1
    debug为什么不用断点?
    livelazily
        16
    livelazily  
       Nov 21, 2014
    @66beta console.log 这个函数本来就没有返回值的啊...你到底想要获取什么东西?
    66beta
        17
    66beta  
    OP
       Nov 21, 2014
    @livelazily console.log('abc'); 应该显示abc,但是没显示~只返回了undefined
    66beta
        18
    66beta  
    OP
       Nov 21, 2014
    @FrankFang128 应该就是这个情况,好恨啊,因为是个大项目,要去header里加一句着实麻烦
    @idgnarn 看来要走上高大洋的debug之路了,alert和console.log该抛弃了
    livelazily
        19
    livelazily  
       Nov 21, 2014   ❤️ 1
    @66beta 显示和返回值是两个东西... 如果是没有显示的话,应该是 console.log 被人覆盖了,按照我的方法就可以从别的 iframe windos 里拿一个回来; 如果是要返回值, console.log 函数是没有返回值的
    66beta
        20
    66beta  
    OP
       Nov 21, 2014
    @livelazily 谢,其实我就是想偷懒,在console被覆盖的情况下,最简单的方式可以重新用,其实就几个小json,console.log足够了~
    justplaymore
        21
    justplaymore  
       Nov 21, 2014   ❤️ 1
    console.log本来就是没有返回值的,所以默认是undefined
    lz如果遇到的是console.log没有输出值,那用typeof来检查一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3137 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 13:26 · PVG 21:26 · LAX 06:26 · JFK 09:26
    ♥ Do have faith in what you're doing.