Как поставить расширение chrome в контексте задачи? - PullRequest
0 голосов
/ 01 мая 2020


Мое расширение - Refresher, я хочу поместить Refresher в контекст задачи, например AdGuard AdBlocker.

manifest. json
{ "name": "Refresher", "version": "1.0", "manifest_version": 2, "content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"] } ], "browser_action": { /*"default_popup": "popup.html",*/ "default_title": "Counter" }, "permissions": [ "activeTab", "contextMenus", "storage" ], "background": { "scripts": ["background.js"] } }

content. js

console.log("context started...")
chrome.runtime.onMessage.addListener(gotMessage);

function gotMessage(message, sender, sendResponse) {
    console.log("Clicked received : "+message);
    //const cnt = document.getElementById("root").getElementsByTagName("rect").length;
    const cnt = document.getElementById("component-c332").getElementsByTagName("span").length;
    alert("Count is: "+cnt);
}

Я хочу сделать это, потому что я получаю Error in event handler: TypeError: Cannot read property 'getElementsByTagName' of null эту ошибку, пока выполняет код document.getElementById("component-c332").getElementsByTagName("span").length с использованием расширения Refresher, но когда я выполняю этот код в консоли, если контекст javaScritp находится в верхней части, он показывает то же сообщение об ошибке, но когда я установил его на task, тогда он успешно выполняется.

Пожалуйста, помогите мне с этим. Спасибо.

...