Я делаю простое расширение chrome, которое может проверять HTML теги для текущей активной вкладки.
При нажатии на значок расширения отображается default popup page(popup.html)
It изменит значок расширения в зависимости от результатов и покажет результаты на всплывающей странице.
Я использую код chrome.browserAction.setIcon({path: imgSrc})
, чтобы изменить значок расширения.
Но проблема в том, что этот значок расширения изменения кода на всех других вкладках.
Я хочу изменить его только на активной в данный момент вкладке, по которой щелкнул значок расширения.
Я знаю, что должен получить идентификатор текущей вкладки для изменить значок ext для текущей активной вкладки.
Для этого кода chrome.browserAction.setIcon({tabId: tab.id, path: imgSrc})
Но не знаю, как получить текущий идентификатор активной вкладки на popup.js
, а не background.js
Может кто-нибудь мне помочь?
вот мои файлы
манифест. json, который объявляет default_popup
{
"name": "Tag Checker for ChromeExtension",
"version": "1.0.0",
"description": "Tag Checker for ChromeExtension",
"manifest_version": 2,
"permissions": [
"activeTab",
"storage"
],
"browser_action": {
"default_icon": {
"16": "images/browserAction/best.png",
"32": "images/browserAction/normal.png",
"48": "images/browserAction/bad.png",
"128": "images/browserAction/abnormal.png"
},
"default_popup": "popup.html"
}
}
всплывающее окно. html
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Tag Checker</title>
<script src="/js/popup.js"></script>
</head>
<body>
<span id="results"></span>
</body>
</html>
всплывающее окно. js
chrome.tabs.executeScript({file: '/js/injection.js'});
впрыск. js
//checking tag codes will be implemented here
var imgSrc = 'images/browserAction/48.png';
chrome.browserAction.setIcon({path: imgSrc});
(function() {
document.querySelector('#results').innerText = 'DONE';
})();