Chrome расширение JS страница загрузки Chrome Tabs проблема - PullRequest
0 голосов
/ 04 декабря 2018

В настоящее время у меня есть простое расширение Chrome, которое внедряет CSS для конкретной страницы.Я хочу добавить пользовательские параметры ... которые я получил, добавив флажок, который сохраняет его значение.

проблема в том, что я пытаюсь запустить JS при загрузке страницы, но chrome.tabserroring ..

1-й я попробовал это: alert ('hi');

chrome.storage.sync.get({ProPicDisplay: true}, function(items) {
        alert(items.ProPicDisplay);
        chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function(tabs) { 
             alert('ho');
             });
});

, который, я получаю 1-е и 2-е предупреждение, а не третье.без ошибок

поэтому я попытался:

alert('hi');

chrome.storage.sync.get({ProPicDisplay: true}, function(items) {
        alert(items.ProPicDisplay);

});

chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function(tabs) { 
             alert('ho');
});

и снова я получаю 1-е и 2-е оповещения, но ошибки в chrome.tabs.query

Uncaught TypeError: Cannotчитать свойство 'query' из неопределенного

в моем манифесте. У меня есть:

Разрешения (вероятно, больше, чем нужно, но тестировалось):

"permissions": [
    "tabs", 
    "activeTab", 
    "storage", 
    "declarativeContent",
    "webNavigation",
    "http://*/", 
    "https://*/" ],

и:

"content_scripts": [
   {
      "matches":    ["*://gamdom.com/*"],
      "css":        ["gam.css"],
      "js":                 ["load.js"]

   }

так, цель состоит в том, чтобы выполнить это:

chrome.tabs.insertCSS(tabs[i].id,{code: ".chat_user_prof {display: " + disp + " !important;}"});

, когда страница загружается .. (но, это также ошибки)

также пробовал это, но предупреждениеговорит 0 для классов ??LOL

window.addEventListener ("load", pageFullyLoaded);

function pageFullyLoaded () {
    chrome.storage.sync.get({ProPicDisplay: true}, function(items) {
        var disp = 'none';
        if (items.ProPicDisplay) {
            disp = 'inline';
        }
        var cup = document.getElementsByClassName("chat_user_prof");
        alert(cup.length);
        cup.style.display = 'none';
});
}

РЕДАКТИРОВАТЬ: если я использую:

document.addEventListener('DOMContentLoaded', pageFullyLoaded);

это не срабатывает .. так что load.js не видит страницу ..?как заставить его видеть страницу / документ?

1 Ответ

0 голосов
/ 04 декабря 2018

Как указано в ответе выше ... мне не хватало / нужно chrome.tabs.onUpdate !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...