2

我正在尝试创建一个 devtools 扩展,从添加一个面板开始。我只是chrome.devtools.panels.create从加载到我的扩展程序页面上的外部脚本调用。但是当我为我的扩展选择工具栏按钮时,会创建一个新的面板实例,并在原始面板的右侧显示一个相应的按钮。选择该新按钮实例会重复该行为。

我遵循了Google 的示例详细的博客文章,但在它们中我都没有看到任何应该从事件侦听器调用它的地方。我也找不到任何方法来检测面板的其他实例,所以我不确定如何避免这个问题。我不确定我是否可能遇到了新的错误,或者我在这里忽略了一些基本的东西......

4

1 回答 1

1

我遇到过同样的问题。我的问题是我有一个调用该panels.create()方法的循环。

诱导循环

我的manifest.json文件显示:

"devtools_page": "devtools.html"

我的devtools.htmlinclude devtools.js,它是这样调用panels.create()的:

chrome.devtools.panels.create('Title', 'iconfile', 'devtools.html');

这是问题所在,因为我的panels.create()方法是创建一个新面板,其中包含将循环 devtools.html调用的面板。panels.create()

修复循环

此方法应调用一个单独的html文件,该文件将包含所有实际面板内容,例如:

chrome.devtools.panels.create('Title', 'iconfile', 'panel.html');

panel.html不能包含devtools.js,否则您将再次遇到相同的问题。

我希望这有帮助。

于 2013-02-12T16:03:04.563 回答