Tôi vừa mới đưa ra cùng một vấn đề và nghĩ rằng tôi sẽ chia sẻ giải pháp của mình. Tôi gọi một kịch bản nội dung mà sau đó sẽ được tải hoặc dỡ bỏ các css như sau:
function loadCSS(file) {
var link = document.createElement("link");
link.href = chrome.extension.getURL(file + '.css');
link.id = file;
link.type = "text/css";
link.rel = "stylesheet";
document.getElementsByTagName("head")[0].appendChild(link);
}
function unloadCSS(file) {
var cssNode = document.getElementById(file);
cssNode && cssNode.parentNode.removeChild(cssNode);
}
Logic mà những gọi cũng là trong kịch bản nội dung, dựa trên dữ liệu trong chrome.storage
. Vì vậy, tất cả những gì bạn cần làm là tiêm tập lệnh và nó sẽ thêm/xóa css.
Trường hợp của tôi thực sự phức tạp hơn một chút vì vậy tôi luôn tải tập lệnh nội dung và gửi một tin nhắn tới tập lệnh đó để tải hoặc dỡ tải css. Nhưng điều này có chi phí tải các tập tin trên mỗi tải trang.
Nguồn
2013-10-01 23:14:57
Tôi đã hỏi câu hỏi thứ ba của bạn, về lý do tại sao CSS được chèn không hiển thị trong các công cụ dành cho nhà phát triển [ở đây] (http://stackoverflow.com/questions/28402524/how-to-view-css-stylesheet-injected -by-a-google-chrome-mở rộng-sử dụng-dev-công cụ? noredirect = 1 # comment45224324_28402524) khi tôi đi qua này. Không giống ai cố gắng trả lời nó ở đây, nên tôi sẽ để tôi như vậy. – foobarbecue