数日前、Web ページで cssRules データを取得する際の問題に直面しました。
document.styleSheets[i].cssRules
同じドメイン スタイル シート パスを持つスタイル タグとリンク タグに対してのみ機能します。
そのため、異なるドメインのスタイル シートを使用すると、これらのルールにアクセスするのがかなり難しくなります。
または、ローカル ファイル システムから html ページを参照すると、ローカル ファイル システムのスタイル シートや Web 上のスタイル シートからでもルールにアクセスできません。つまり、ローカルの fs html ページからスタイルシートのルールを取得することは不可能です。
また、データ URL を使用するとルールを取得できません。たとえば、次のようになります。
<link rel="stylesheet" href="data:text/css;base64,Kntjb2xvcjpyZWQ7fQ==">
なぜこのような不公平な行動が現れるのかはわかりませんが、いつかこれらの制限の本当の理由に気付くことを願っています.
ブラウザ自体が問題なくアクセスしてレンダリングするときにcssルールへのjsアクセスを禁止する理由がよくわからないため(クロスドメイン、ローカルファイルシステムなど)
とにかくこれらのルールにアクセスする方法について何か提案はありますか?
私の場合、すべての Web サイトで動作する js 拡張機能を作成します (そのため、必要な css を自分のドメインに単純に移動することはできません)。