2013-04-05 10 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

Спасибо за ответ. Я попробовал это, и это, казалось, сработало, но я сделал это по-другому. Я принял это как ответ, хотя, потому что сделал то, что я просил, так что спасибо. –

+11

@DrPighouse Вы говорите, что вы «сделали это по-другому»; Вы должны обновить свой вопрос, чтобы указать, какие изменения вы внесли, чтобы заставить его работать, чтобы помочь другим пользователям использовать расширения Chrome. –

Смежные вопросы