Chrome APIでは、manifest.json経由で注入されたCSSを削除できません。
demo extensionがないだけのようなコードを注入し、それに指しchrome.runtime.id
に等しいid
でdocument.documentElement
下(存在する場合)を追加または削除しますあなたのコンテンツスクリプトの名前でfile
パラメータlink
要素を使用してhref
web accessible CSSファイル。
- manifest.jsonを
- から
"content_scripts"
を削除
- をクリックハンドラ内popup.js
- に
div
のクリックハンドラを追加manifest.jsonをする"web_accessible_resources": ["*.css"]
を追加:chrome.tabs.executeScript({file: 'content.js'});
コンテンツを。 js:
(function() {
var styleElement = document.getElementById(chrome.runtime.id);
if (styleElement) {
styleElement.remove();
return;
}
var css = ({
'www.youtube.com': 'app_yt_HoveredImg.css',
'www.messenger.com': 'fb_messenger_styles.css',
'www.google.com': 'google_styles.css',
'translate.google.com': 'google_styles.css',
'apis.google.com': 'google_styles.css',
})[location.hostname];
if (!css) {
return;
}
styleElement = document.createElement('link');
styleElement.id = chrome.runtime.id;
styleElement.rel = 'stylesheet';
styleElement.href = chrome.runtime.getURL(css);
document.documentElement.appendChild(styleElement);
})();
注:このワークフローでは、"tabs"
の代わりに"permissions": ["activeTab"]
が必要です。利点は、拡張子のインストール時にactiveTab
がアクセス権を要求しないことです。
解決策を適用している間に、いくつかのばかげたミスを解決した後、最終的に機能しました。ありがとう。私はさらにこれについてのチェックやデバッグの方法があるのですか? – Zhekoay
Webページでcontent.jsとopen devtoolsに 'debugger;'を追加します。スクリプトが挿入されると、devtoolsデバッガが起動します。ポップアップに関しては、独自のdevtoolsがあります:ポップアップを右クリックし、「Inspect」をクリックします。 – wOxxOm