2013-06-21 22 views
1

我有一个运行background.js文件的谷歌浏览器扩展程序。当我通过chrome://extensions/打开它的调试控制台并点击Inspect views: _generated_background_page.html时,我得到了一个包含所有调试信息的开发工具的窗口实例。如何将扩展的后台脚本的调试窗口停靠在主窗口中?

我宁愿将窗口停靠在主窗口内,左下角确实存在一个“停靠在主窗口上”,嘲弄我但没有做任何事情。

所以我想知道,这是Chrome的最终错误/功能,或者我设置了我的扩展错误的事件,虽然它的工作?

manifest.json

{ 
    "manifest_version": 2, 
    "name": "Name", 
    "version": "0.4", 
    "description": "some description", 
    "permissions": [ 
     "tabs", "*://www.somesite.com/*" 
    ], 
    "background": { 
     "persistent": false, 
     "scripts": ["background.js"] 
    }, 
    "content_scripts": [ 
     { 
      "matches": ["*://www.somesite.com/*"], 
      "js": ["components/jquery/jquery.min.js", "main.js"], 
      "run_at": "document_end", 
      "all_frames": true 
     } 
    ] 
} 
+0

什么是“主”窗口? 'chrome:// extensions /'页面?如果你想检查多个扩展?或者,如果你想检查'chrome:// extensions /'本身?这是不可能的默认情况下,虽然可以让检查员在选项卡中的背景。 –

+0

@RobW我不是指扩展页面。我的意思是它停靠在“常规”当前选项卡窗口或Chrome实例上。 (事实上​​,我使用chrome的方式,我总是只有一个窗口),我希望它像标准的开发工具一样工作,而不是将它放在单独的窗口中。 – k0pernikus

回答

1

以获取在标签背景页面检查器中的最简单的方法是使用remote debugging protocol。如果您喜欢冒险,可以使用chrome.debugger API自行编写和实现前端。

如果你很理智,只需用--remote-debugging-port标志启动Chromium即可。这会创建一个本地服务器(只能从您自己的机器中访问),可通过http://localhost:<port>访问。然后,您可以使用此页面检查背景页面并与其交互。

下面是截图,显示在行动的特点:

注:只有一个调试实例可以活跃每一页。如果打开内置的devtools,然后在本地主机检查器将被禁用,直到您刷新页面devtools,并显示以下信息:

远程调试已终止与理由:replaced_with_devtools
请重新附加到新的目标。

+0

看来我还是没有把这个问题说清楚,为此我表示歉意。我正在构建一个扩展,通过内容脚本改变现有网站的内容。然而,这个扩展还将为不同的任务提供一个后台脚本,并且我希望在与内容脚本相同的开发工具面板中看到这些脚本,因为我大部分都在那里。我不想要一个新窗口,也不需要新选项卡。我想要一个特定的选项卡。看来我必须将日志消息从后台脚本传递给内容脚本。 – k0pernikus