[英]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.