将Console.log覆盖为Support Console.re.log以调试iOS Chrome

时间:2018-10-12 05:21:47

标签: javascript console

我没有任何Apple设备,正在尝试调试iOS Chrome。遗憾的是,浏览器堆栈尚不支持iOS Chrome浏览器。我找到了这个简洁的websocket控制台记录器工具https://console.re/

它要求您使用特殊语法登录到他们的应用程序。您必须编写console.re.log('message')。但是,我试图记录所有内容以查看我的应用程序在哪里损坏。我尝试使用下面的代码,但是由于console.re.log也调用console.log,并且将console.log添加到console.re.log,我陷入了无限循环的问题。这是代码:

<script>
    console.log(window.location.href.slice(-5));
    if(window.location.href.slice(-5) === 'debug') {
          var consolere = {
            channel:'music-blobs',
            api:'//console.re/connector.js',
            ready: function(c) {var d=document,s=d.createElement('script'),l;s.src=this.api;s.id='consolerescript';s.onreadystatechange=s.onload=function(){if(!l){c();}l=true;};d.getElementsByTagName('head')[0].appendChild(s);}};
          var _log = console.log;
          var _error = console.error;
          var _warning = console.warn;
          var logQueue = [];
          var errorQueue = [];
          var warnQueue = [];
          var parseQueueRan = false;
          consolere.ready(function() {
            console.log = console.re.log;
            console.warn = console.re.warn;
            console.error = console.re.error;
          });
          window.console.log = function(...items) {
            if(console.re) {
              console.re.log(message);
            } else {
              logQueue.push(message);
              _log.apply(console, arguments);
            }

          }
          window.console.error = function(message) {
            if(console.re) {
              console.re.error(message);
            } else {
              errorQueue.push(message);
              _warning.apply(console, arguments);
            }

          }
          window.console.warn = function(message) {
            if(console.re) {
              console.re.warn(message);
            } else {
              warnQueue.push(message);
              _error.apply(console, arguments);
            }
          }
        }
  </script>

有人知道我该如何工作吗?

1 个答案:

答案 0 :(得分:0)

年代久远,但对于其他Google员工来说: 我的简单解决方案是: console = console.re; ...并且每个日志都将显示在console.re /