Итак, я пытаюсь сделать что-то вроде родительского контроля. Когда я запускаю расширение в первый раз, он отлично работает, но когда я его снова использую, элементы не скрывают, целая страница загружается, а затем перенаправляется, я хочу скрыть все элементы на странице, а затем перенаправить, я не использую onBeforeRequest Я хочу использовать его также с поиском google, и я не знаю, могу ли я использовать параметр регулярных выражений внутри URL. Мой манифест в порядке, я запускаю скрипт контента в документе document_start.Скрыть все элементы перед загрузкой расширения хрома
background.js
var activeTabUrl;
var regex = /http:\/\/www.youporn.com\//
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
chrome.tabs.query({
active: true,
currentWindow: true
}, function (arrayOfTabs) {
activeTabUrl = arrayOfTabs[0].url;
});
if (activeTabUrl.match(regex)) {
chrome.tabs.update({
url: "http://google.com/"
})
} else {
chrome.tabs.sendMessage(tabId, {
action: "show_my_page"
}, function (response) {});
}
});
myscript.js (content_script)
_ini();
function _ini() {
document.getElementsByTagName("html")[0].style.display = "none";
chrome.extension.onMessage.addListener(function (msg, sender, sendResponse) {
if (msg.action == 'show_my_page') {
document.getElementsByTagName("html")[0].style.display = "block";
}
});
}
Можете ли вы попробовать вставить «' by script? –
Да, это не работает. Самое странное, что когда я открыл инспектор в хроме, он работает каждый раз. – Syeth
, возможно, в момент выполнения скрипта сценария содержимого документ еще не готов. Попробуйте заменить _init() на document.addEventListener ('DOMContentLoaded', _init); и посмотреть, работает ли он. – Surely