0

我有一個Chrome擴展,當前點擊時會打開一個側邊菜單。到目前爲止,這工作正常,但我試圖將它綁定到一個密鑰。這工作正常,但我點擊後,方可按鈕至少一次,因爲當它從後臺JS網頁注入的JS如何在加載後運行我的Chrome擴展程序?

chrome.browserAction.onClicked.addListener(clicked)

調用是:

var opened = []; 

function clicked(tab){ 
    var currentTabId = tab.id; 
    if(opened.indexOf(currentTabId) < 0){ 
     opened.push(currentTabId); 

     chrome.tabs.executeScript({ 
      file: 'jquery.js' 
     }); 
     chrome.tabs.insertCSS({ 
      file: 'admin.css' 
     }); 
     chrome.tabs.executeScript({ 
      file: 'admin.js' 
     }); 
    } else { 
     chrome.tabs.executeScript({ 
      code: 'admin.toggle();' 
     }); 
    } 
} 

這一切工作大。 Admin.js也會聽到波浪號~按鈕以打開側抽屜(它稱爲相同的admin.toggle()函數)。但問題是我需要在第一次點擊按鈕之前注入JS,所以它知道要聽取~

我還可以使用browserAction嗎?或者我需要使用內容腳本嗎?

在此先感謝!

回答

1

當用戶點擊瀏覽器動作按鈕時,觸發瀏覽器動作get。所以沒有辦法(也沒有意義)以編程方式觸發它。

您已經在使用內容腳本(通過executeScript注入的文件和代碼)爲內容腳本(僅爲programmatically injected)。

如果您希望「立即」具備該功能,則需要在用戶導航到新的網頁時自動注入一些內容腳本。實現這一

一種方式是通過content_scripts property的manifest.json

如果你不想在每個網頁中注入jQuery和admin.js(特別是如果你的腳本「很重」,比如註冊很多事件監聽器等),你可以注入一個小腳本來聽取~然後才註銷偵聽器,注入腳本並執行admin.toggle()

+0

非常感謝,導致我修復它! – Prodikl

相關問題