2013-04-05 83 views
4

我已經很好看,但我似乎無法找到並回答此問題(嗯,無論如何,這對我來說都適用)。Chrome擴展程序 - 僅在單擊按鈕時運行內容腳本

我已經制作了一個Chrome擴展程序,該擴展程序應該只運行我的內容腳本中的代碼,只需單擊該圖標即可,但只要頁面加載完成,它就會始終運行。有沒有辦法來防止這種情況發生?我可以爲run_at輸入的任何可能的字符串都不會滿足這個要求。

這裏是兩個腳本示例代碼:

內容腳本:

function runIt() { 
    console.log('working'); 
} 
runIt(); 

background.js:

chrome.browserAction.onClicked.addListener(function(activeTab) { 
    chrome.tabs.executeScript(null, {file: "content.js"}); 
}); 

它將記錄 '工作',只要在頁面加載,之後點擊每個按鈕。有沒有辦法阻止頁面加載後立即運行?

在此先感謝所有貢獻。

回答

7

您的背景頁面中的browserAction.onClicked代碼完全符合您的要求。如果您想停止content.js在頁面加載時作爲內容腳本運行,則只需不會將其作爲內容腳本包含在您的清單中。

具體來說,在manifest.json文件,你有幾行是這樣的:

"content_scripts": [ 
    { 
    "matches": ["*://*/*"], 
    "js": ["content.js"] 
    } 
], 

只需刪除那些行,腳本將停止在頁面加載運行,同時點擊監聽器代碼將繼續加工。

+0

謝謝你的回答。我試過這個,它似乎工作,但我做了不同的。我已經接受了這個答案,因爲它是按照我的要求做的,所以謝謝。 – 2013-04-08 07:47:34

+11

@DrPighouse你說你「做得不一樣」;你應該更新你的問題,說明你做了哪些改變,以幫助其他人使用Chrome擴展程序。 – 2013-12-15 21:16:09

相關問題