簡體   English   中英

Google Chrome擴展程序-自動創建和刪除標簽

[英]Google Chrome extension - create and remove a tab automatically

我正在創建一個擴展程序,它將基於突出顯示的文本啟動一個外部腳本。 到目前為止,該腳本有效,除了關閉新創建的窗口時遇到問題。

在我的background.html中,我具有以下內容:

<script>
function executeScript(selection) {
  var queryText = 'script:' + selectedText;
  chrome.tabs.create({url: queryText});
  chrome.tabs.getSelected(null, function(tab) {
    chrome.tabs.remove(tab.id);
  });
}
</script>

我的問題是上面的設置,它在“ url”加載之前關閉了選項卡,因此它從不執行腳本。

如果我刪除了getSelected行(第5-7行),它將打開選項卡並完美運行腳本。 我正在嘗試獲取語法,以便在執行后自動關閉選項卡。

謝謝!

這對我有用:

chrome.tabs.create({ url: yourUrl },function(tab){
                                                setTimeout(function(){chrome.tabs.remove(tab.id);}, 200);
                                    });

不確定要執行的操作,但是如果要在腳本運行后關閉選項卡,則應讓腳本使用chrome.extension.sendRequest向background.html發送“ Close Me”請求。

使用chrome.tabs.executeScript可能會更好,它允許您傳遞一個函數(可以關閉選項卡),該函數在腳本運行完后會被調用。

我想對此問題發布后續問題:

我想制作一個Chrome擴展程序,該擴展程序將給定選項卡的URL(最終是選定的文本)傳遞給我的程序(在OS X中)。

問題在於Chrome瀏覽器在打開標簽頁后會立即關閉該標簽頁,並不會真正加載該網址。 實現此目的的唯一方法是插入alert-command,這是不切實際的。

我也嘗試過

chrome.tabs.onCreated.addListener

但是結果是一樣的,而且setTimeout似乎根本沒有被注冊。

我的代碼:

chrome.browserAction.onClicked.addListener(function(tab){chrome.tabs.create({url:“ myApp:add?url =” + encodeURIComponent(tab.url)}},function(tab){alert(“您的網址是已添加到myApp“); chrome.tabs.remove(tab.id);});});

我需要完全相同的結果,只是沒有警報框...。謝謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM