2013-06-21 34 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