2010-03-09 199 views
17

我創建了一個Chrome擴展程序,並設法使用window.open打開popup.html文件。不過,我想在新標籤中打開它,我已經嘗試了許多不同的方式,包括:Chrome擴展程序:onclick擴展名圖標,在新標籤頁中打開popup.html

<script type="text/javascript" language="JavaScript"> 
    chrome.tabs.create('url': 'popup.html'); 

我是不是把代碼在錯誤的地方或者是錯誤的代碼完全?

+0

嘗試這樣的回答:http://stackoverflow.com/a/36996729/5309803 ...它爲我的作品 – 2017-05-01 15:14:43

回答

20

你爲什麼想要在新選項卡中打開popup.html?你應該爲此創建一個不同的頁面。無論如何,如果你想打開popup.html,在一個新的選項卡中,你需要傳入擴展名url。

http://code.google.com/chrome/extensions/extension.html#method-getURL

chrome.tabs.create({'url': chrome.extension.getURL('popup.html')}, function(tab) { 
    // Tab opened. 
}); 
+4

這個片段需要從後臺頁面調用,所以如果你試圖從內容腳本中打開標籤,發送一條消息到後臺頁面來觸發這段代碼。下面是以這種方式發送郵件的適當頁面:http://code.google.com/chrome/extensions/messaging.html – 2010-03-10 00:56:16

+2

我必須包裝'網址':chrome.extension.getURL('popup.html')括號內的。 {'url':chrome.extension.getURL('popup.html')} – AdamB 2010-04-09 00:48:53

2

使用chrome.tabs.create(對象屬性,回調函數)作爲http://code.google.com/chrome/extensions/tabs.html

對象屬性可包含用於WINDOWID,索引,url和所選的字段描述。可選的回調函數接收新創建的選項卡的Tab對象。

所以最簡單的例子在當前窗口中創建一個新的標籤,並把它選擇的是這樣的:

chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'highlighted': 'true'}); 

不知道爲什麼你想顯示popup.html在一個新的標籤,但是我發現它在開發/調試我的擴展時非常有用......在擴展頁面上,通常只有一個指向背景頁面的鏈接是一件非常痛苦的事情。

很想知道如何在一個新的窗口,也許在kiosk模式;-)

+2

請注意'selected'現在已被棄用。改用''突出顯示'。 – Brad 2017-06-02 21:11:31

6

現在你可以使用Event Pages在新標籤頁中打開popup.html打開它時,點擊擴展程序圖標,而無需創建default_popup頁面。

清單:

"background": { 
    "scripts": ["background.js"], 
    "persistent": false 
} 

JS:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'selected': true}); 
}); 
+3

這將在每次點擊時打開新標籤頁。檢查擴展彈出菜單是否已經打開可能是明智的,如果是,請選擇它 – 2016-03-30 20:22:44

相關問題