Вместо того, чтобы вставлять стили автоматически, вручную создайте элемент <style>
с некоторым количеством id
, который впоследствии можно будет удалить из DOM.
Вот снимок из расширения, которое включает и отключает подчеркивание ссылки черезcss:
//enable.js
var head = document.head;
var style = document.createElement("style");
var rules = document.createTextNode("a {text-decoration:underline !important;}");
style.type = "text/css";
style.id = "__link-highlighter";
if(style.styleSheet) {
style.styleSheet.cssText = rules.nodeValue;
} else {
style.appendChild(rules);
}
head.appendChild(style);
//disable.js
if(document.getElementById("__link-highlighter")) {
document.head.removeChild(document.getElementById("__link-highlighter"));
}
Я внедряю правила CSS в тело элемента <style>
, потому что они очень маленькие, если вам нужно много правил, вы можете создать <link rel="stylesheet">
вместо ссылки на chrome.extension.getURL("styles.css")
.