Вы настроили свое расширение для внедрения кода с помощью скрипта содержимого.Сценарий содержимого будет вставлен в любую страницу, которая соответствует вашему полю совпадений.Вам нужно только внедрить скрипт, если они нажмут на действие вашего браузера.Для этого у вас может быть фоновая страница, которая прослушивает событие chrome.browserAction.onClicked и реагирует на него.Или у вас может быть страница по умолчанию для вашего действия браузера, которая внедряет код в страницу, и если ваш файл window.close является частью скрипта, это предотвратит появление любого всплывающего окна и позволит вам избежать использования фоновой страницы.избегать использования фоновой страницы, когда это возможно).
Для примера первого метода, посмотрите этот пример ....
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/browserAction/make_page_red/
А вот пример второго метода (который является модифицированнымверсия образца set_page_color) ...
manifest.json
{
"name": "A browser action that changes the page color.",
"version": "1.0",
"permissions": [
"tabs", "http://*/*", "https://*/*"
],
"browser_action": {
"default_title": "Set this page's color.",
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"manifest_version": 2
}
popup.html
<!doctype html>
<html>
<head>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>
popup.js
chrome.tabs.executeScript(null,{file:"injectedCode.js"});
window.close();
injectedCode.js
// This was just a quick look at changing text on a page
// there could be more tags you should ignore and there could be a better way of doing this all together
var ignoreTags = ["NOSCRIPT","SCRIPT","STYLE"];
var nodeIterator = document.createNodeIterator(
document,
NodeFilter.SHOW_TEXT,
function (node){
var parentTag = node.parentNode.tagName.toUpperCase();
if ( ignoreTags.indexOf(parentTag)==-1 ) {return true} else {return false};
},
false
);
var node;
while ( (node = nodeIterator.nextNode()) ) {
node.data = node.data.replace(/a/g, 'z');
}
ПРИМЕЧАНИЕ
Как Роб У указывает накомментарии chrome.tabs
и chrome.browserAction
нельзя использовать в скрипте содержимого, поэтому chrome.browserAction.onClicked
необходимо использовать на фоновой странице.