鉻API不能刪除通過manifest.json的CSS注入。
注入就像demo extension做的代碼,但使用file
參數與您的內容腳本的名稱,將與id
等於chrome.runtime.id
和href
指向document.documentElement
下添加或刪除(如果存在)一個link
元素一個web accessible CSS文件。
- 從manifest.json的
- 刪除
"content_scripts"
添加"web_accessible_resources": ["*.css"]
到的manifest.json
- 在popup.js
- 單擊處理程序添加一個單擊處理程序
div
: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);
})();
注意,在這個工作流程,你只需要"permissions": ["activeTab"]
而不是"tabs"
:優點是安裝擴展時activeTab
沒有要求的權限。
它的工作終於解決了幾個愚蠢的錯誤後,同時將您的解決方案。謝謝。我可以進一步詢問是否有檢查或調試的方法? – Zhekoay
在content.js中添加'debugger;'並在網頁上打開devtools:當腳本被注入時,devtools調試器將被激活。至於彈出窗口,它有自己的開發工具:右鍵單擊彈出窗口並單擊檢查。 – wOxxOm