Мое расширение chrome не использует content_scripts
, потому что я не хочу вводить код на каждую страницу. Вместо этого, когда пользователь нажимает на кнопку, открывается всплывающее окно и вводит код на страницу.Разрешение на расширение Chrome для «about: blank» страница
Так, в manifest.json
есть разрешения блока:
"permissions": [
"activeTab"
]
И в popup.js
есть этот код:
chrome.windows.getCurrent(function(win) {
chrome.tabs.query({
'windowId': win.id,
'active': true
}, function(tabArray) {
// inject css & js only on initial click
chrome.tabs.executeScript(null, {
code : 'document.querySelector("body").classList.contains("_myExtension_code_injected")'
}, function(result) {
if (result && !result[0]) {
chrome.tabs.insertCSS(null, {
file: 'myExtension.css'
});
chrome.tabs.executeScript(null, {
file: 'myExtension.js'
}, function(){
chrome.tabs.executeScript(null, {
code: 'myExtension.init();'
});
});
}
});
});
});
Проблема некоторые веб-сайты, открыть всплывающее окно с дополнительными Информация. И URL-адрес этой всплывающей страницы - "about:blank"
. Если я пытаюсь инициализировать расширения, я вижу это сообщение в консоли:
Unchecked runtime.lastError во время работы tabs.executeScript: Не удается получить доступ к URL содержимого «о: пустой». Расширительный манифест должен запрашивать разрешение на доступ к этому хосту.
Я не вижу способа добавить страницу "about:blank"
к permissions
. И я действительно не хочу начинать использовать content_scripts
, чтобы установить match_about_blank
.
Я попытался добавить "about:blank"
и "about:*
в permission
, и все, что я получаю, является ошибкой установки.
Были предупреждения при попытке установить это расширение: Разрешения «о *» неизвестен или URL шаблон имеет неверный формат.
Есть ли решение?
Обновление: Here is a gist with everything you'll need. Была добавлена ссылка на демонстрационную версию jsbin, но проблема не в том, что сайт специально. Первоначально расширение было протестировано на всплывающем окне почты yahoo, которое вы получаете, выбирая печать электронной почты.
Разве вы не можете просто проверить 'windows.location.href' значение против' о: blank' перед выполнением какого-либо кода? – Mathlight
Хром предотвращает инъекцию кода, потому что ему требуется разрешение. Я включил ошибку, показанную выше. – Mottie
Я понимаю это часть. Но я имел в виду, если возможно, поставить чек вокруг инъекционной части. (Я не знаю, насколько это возможно, если это возможно) – Mathlight