JavaScript (IE8+) 内では、 document.querySelectorAll(selector)を使用できます。このセレクターは、高度な jQuery フィルタリング メソッドを除いて、実際には jQuery と CSS で実行できるほとんどすべてのことを実行します (それも 100% 確実ではありません)。
とにかく、画面に奇妙なフォントを表示したくない場合は、これを行うことができます。
document.querySelectorAll('[font-family^="serif-"]')
これは、「属性がで始まる要素を探し、serif-
そこから操作できるノードリストを取得することを意味します。
属性セレクターの完全なドキュメントについては、こちらを参照してください。
MDN から取得
[attr] attr
という属性名を持つ要素を表します。
[attr=value]
属性名が attr で、その値が正確に「値」である要素を表します。
[attr~=value]
attr という属性名を持つ要素を表し、その値は空白で区切られた単語のリストであり、そのうちの 1 つは正確に「値」です。
[attr|=value]
属性名が attr の要素を表します。その値は、正確に「値」にすることも、「値」で始まり、その直後に「-」を付けることもできます (U+002D)。言語サブコードの一致に使用できます。
[attr^=value]
属性名が attr で、値の前に「value」が付く要素を表します。
[attr$=value]
属性名が attr で、値の末尾に「value」が付いた要素を表します。
[attr*=value]
属性名が attr で、その値に部分文字列として文字列「value」が少なくとも 1 回出現する要素を表します。
これらのセレクターはあなたの場合に役立つはずです。これらを組み合わせdocument.querySelectorAll(selector)
て、楽しい時間を過ごすことができます ;)
編集
したがって、ここで行う必要があることについてさらに詳細を追加するには、次のようにします。
- 問題のあるフォントを使用してすべての要素を取得します
document.querySelectorAll()
for
コンストラクトを使用してコレクション内の要素をループします
- ループ内で、
element[i].style.fontFamily = 'new-family'
すべてのフォントを置き換えるために使用します。
スタイルの変更に関する完全なドキュメントについては、こちらを参照してください
あなたがしたいことは、最初に問題のある要素を見つけることです。たとえば、迷惑なフォントの要素です。これらが常にこれを含むインライン スタイルを持っている場合はfont-family
難しくありません。
homebrew snippet (untested)
//インライン [style] 属性に font-family が含まれる要素を取得
//loop all the elements to replace the font
for (var i = 0; i < annoyingFontElements.length; i++) {
//actually do the replacing
annoyingFontElements[i].style.fontFamily = 'nice-font'
}