【问题标题】:chrome.tabs.query() results in crashing browserchrome.tabs.query() 导致浏览器崩溃
【发布时间】:2014-05-10 11:50:27
【问题描述】:

我想学习编写 chrome 扩展程序。我对编程一点也不陌生,但对 javascript 和 Web 编程却很陌生。

我想使用 chrome api 来遍历所有打开的标签。但我的代码导致我的整个浏览器崩溃。
我在 debian 7.5 上使用 chromium 34(来自 debian 存储库的最新更新)

这是我的代码:

var tabinator = {
  fillBody: function() {
    chrome.tabs.query(
      {}, 
      function(tabs) { 
        for(var i=0; i<tabs.length; i++) { 
          alert(tabs[i].id);
        }
      }
    );
  }
};

// --- Execution starts here ---
document.addEventListener(
  'DOMContentLoaded', 
  function () {
    tabinator.fillBody();
  }
);

我使用了this tutorial,并使用了this reference

谁能帮忙。

提前致谢。

【问题讨论】:

  • 不要从弹出窗口发出警报,因为它不起作用并且可能是崩溃的东西。
  • 谢谢你这是问题!!我只是想尽可能简单地做到这一点,并希望像调试输出一样使用 alert(),...愚蠢的想法 :(。非常感谢!!
  • @linluk 我试图重现崩溃(pastebin.com/wksdFud0),但我做不到。浏览器真的崩溃了吗(例如,它是否有段错误?)?您能否提供导致浏览器崩溃的扩展程序的源代码(或自己在crbug.com/new 报告错误)?

标签: javascript google-chrome-extension chromium


【解决方案1】:

感谢Xan,他评论了我的问题并告诉我我不应该在弹出窗口中调用 alert()。这就是问题所在,我现在这样做:

  fillBody: function() {
    chrome.tabs.query(
      {}, 
      function(tabs) { 
        for(var i=0; i<tabs.length; i++) { 
          document.write(tabs[i].title);
        }
      }
    );
  }

【讨论】:

  • 也可以使用console.log()等相关功能;要检查该控制台,请右键单击扩展程序的按钮并选择“检查弹出窗口”。
猜你喜欢
  • 2014-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多