我目前有一个简单的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没有看到页面..?如何获取页面/文档?
答案 0 :(得分:0)
如上面的回复所述。.我丢失/需要chrome.tabs.onUpdate !!!