0

拡張機能 CRX にバンドルされている css ファイル (mystyle.css) を含むクロム コンテンツ スクリプト拡張機能があります。私が知る限り、このスタイルシートをページのコンテンツに挿入する方法は 2 つあります。

スタイルシートがどの方法でページに挿入されても、そのスタイルシートに関連付けられた CSS ルールにアクセスできません。

注入方法 #1:

// From a script running in the context of background.html:
chrome.tabs.insertCSS(tab.id, {file: 'mystyle.css'});

注入方法 #2:

// From a script running in the context of the content, already
// injected by the background page via chrome.tabs.executeScript.
var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href",
    chrome.extension.getURL('mystyle.css'));

バックグラウンド ページによって挿入されたコンテンツのコンテキストで実行されている JavaScript から、方法 1 を使用して挿入された場合、document.styleSheets にリストされているリストにスタイルシートが表示されません。方法 2 を使用して挿入すると、chrome-extension:// href でリストされますが、そのシートの cssRules プロパティは常に null です。

これは、他のドメインからドキュメントにリンクされている CSS シートの場合に予想されますが、私のスクリプトは、私の拡張機能に関連する chrome-extension:// URI にアクセスできる必要があります。

私が現在調査している方法は、chrome-extension:// URI を構築できる CSS ファイルのリソース コンテンツへの生の文字列アクセスです。これが他の試みよりもうまく機能するかどうかはわかりませんが、うまくいくようです.

4

0 に答える 0