Использование ShowPageAction
В предыдущем разделе, было показано, как отобразить Page-Action страницу при помощи chrome.tabs.query и chrome.tabs.onUpdated события. Теперь рассмотрим ещё один способ, как это сделать с помощью декларированного обработчика событий.
Примечание:
Чтобы подробней ознакомиться с данной темой советуем посетить страницу https://developer.chrome.com/extensions/declarativeContent.
Как показано в листинге 2-9, в объекте правил ruleStackOverflowHostуказано условие и действие. Условие представлено объектом PageStateMatcher, который проверяет соответствие веб-страницы указанным правилам. В листинге 2-9 указанные критерииpageUrl.hostEquals и pageUrl.schemes, что соответствует веб-ресурсу stackoverflow.com. Кроме свойства pageUrlможно указать css. Рассмотрим пример, отображения Page-Action страницы на ресурсе https://www.google.com/ с наличием поля для ввода пароля:
var ruleStackOverflowHost = {
"conditions" : [
new chrome.declarativeContent.PageStateMatcher({
"pageUrl" : {
"hostEquals" : "www.google.com",
"schemes" : ["https"]
},
"css" : ["input[type='password']"]
})
],
"actions" : [new chrome.declarativeContent.ShowPageAction()]
};
Далее зарегистрируем правила:
chrome.runtime.onInstalled.addListener(function() {
//Удаляем и заменяем правила
chrome.declarativeContent.onPageChanged.removeRules(undefined,function() {
//Указываем новые правила
chrome.declarativeContent.onPageChanged.addRules(
[ruleStackOverflowHost]
);
});
});