chrome扩展JS页面加载Chrome标签页问题

时间:2018-12-04 14:33:32

标签: javascript google-chrome google-chrome-extension

我目前有一个简单的Chrome扩展程序,可以为特定页面注入CSS。我想添加用户选项..我已经添加了一个保存其值的复选框。

问题是,我正在尝试在页面加载上运行JS,但是chrome.tabs错误。.

第一次我尝试了这个: 警报('hi');

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

我得到第一和第二警报,而不是第三。没有错误

所以我尝试了:

alert('hi');

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

});

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

再次收到第一和第二警报,但chrome.tabs.query出现错误

未捕获的TypeError:无法读取未定义的属性“查询”

我的清单上有:

权限(可能超出所需数量,但正在测试中):

"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?大声笑

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 :(得分:0)

如上面的回复所述。.我丢失/需要chrome.tabs.onUpdate !!!