特定のフォント(Helveticaと言う)を持つページのすべてのテキストを検索し、そのテキストのみのフォントを他のものに変更するjQueryの魔法が必要ですArialと言う)。フォントHelveticaのすべてのテキストをjQueryのフォントArialにする
答えて
これはうまくいくはずです。私は自分のサイトでそれをチェックして、フォントを正しく変更しました。
$('body').filter(function() { return ($(this).css('font-family').indexOf('Helvetica')>-1); }).css('font-family', 'Arial');
これは、現在投稿されている2つのソリューションの中で最適です。しかし、私はまだこれがあなたがすべきことではないと主張します。おそらくJSを使うよりも良い方法があります。つまり、すべてのスタイルシートで検索と置換が同じことを確実にするということです。 – You
@You - 私は同意していないわけではありませんが、「最高の解決策は何ですか」という理由でそれが最善の解決策であると説明することはあまりありません。それは明白な裏付けです - Thinker、Thinkerそれの背後に少しの物質を置くこと。 – karim79
@ karim79:それは 'each'の代わりに' filter'を使うので良いです。よりきれいでわかりやすいコードになります。それ以外の2つのソリューションはまったく同じです。 – You
すべてがCSSを経由して定義されている場合、あなたがこれまでのHelveticaをオーバーライドし、独自の@font-face
定義を産卵の考えたことはありますか?この文のように例えば
、すべてがヘルベチカでレンダリングするように定義されている場合、:
* {
font-family: Helvetica;
}
それから今、このようになります。これは、あなたのスタイルシートにする@ font-face文を追加することがあります。
@font-face {
font-family: 'Helvetica';
src: local('Anivers-Regular'),
local('Anivers Regular'),
url('typeface.Anivers.Regular.otf') format('truetype');
}
<h4 style="font-family: Helvetica;">aw</h4>
のようなインラインスタイルの要素でも機能します。
このようにして、HelveticaはすべてAniversで自動的にレンダリングされ、このスニペットは二重引用符の有無にかかわらず動作します。 PostScript名、フルネーム+スタイル、そしてブラウザ間の互換性のためのURIをリストします。フォールバックがHelveticaにある場合、このCSSマジックが機能します。さらに、スクリプトの代わりにブラウザが代用するので、この方法で無駄なパフォーマンスのオーバーヘッドが発生します。
残念ながら、Internet Explorerは明白な理由で.otfファイルを嫌うので、場合によってはttf2eotというユーティリティが必要になります。
-
これは醜いハックです、あまりにも長い間、本番コードに生きます。
ちなみに、どのようなシナリオがありますか?これをやりたいと思うのはなぜでしょうか?よりよく見える書体を下位のものに置き換えてください。
後であなたの心が変わり、 "本物の" Helveticaを別の場所で使用したい場合は、別の名前でそれを振りかざす必要があります。退屈な仕事はそうではありません。
これは実際の回答ではありませんが、私はまだ他の人の回答にコメントすることができないので、ここで回答に答えています。
上記のThinkerの回答はうまくいきません(少なくとも動作しない場合があります)。
次のように考える人のコードは、(私は彼が彼の答えを編集することができる場合には、ここでそれをコピーしています)です:このコードは何をするか
$('body').filter(function() {
return ($(this).css('font-family').indexOf('Helvetica')>-1);
}).css('font-family', 'Arial');
はのためにどの任意のフォントファミリをMS Pゴシックフォントを変更では、 Helveticaを含む。これには、Helveticaがフォールバックとして使用されているフォントファミリが含まれているため、常に表示されるとは限りません。
また、次のポストで回答やコメントを読むことができます:
Changing Body Font-Size based on Font-Family with jQuery
議論と一緒に類似したコードが含まれています。
これは私が私のGoogle Chrome拡張機能で使用するものです。
var replacement = "Helvetica";
var toReplace = new RegExp("[\\'\\\"\\s]*(Arial|Some|Other|Fonts)[\\'\\\"\\s]*(?=,|$)", "gi");
function replaceFont (toReplace, replacement) {
// Adjust style sheets
if (document.styleSheets) {
for (var i = 0; i < document.styleSheets.length; i++) {
var styleSheet = document.styleSheets[i];
if (styleSheet.cssRules) {
for (var j = 0; j < styleSheet.cssRules.length; j++) {
var cssRule = styleSheet.cssRules[j];
// Replace in font-family attribute
if (cssRule.style.fontFamily.match(toReplace))
cssRule.style.fontFamily = cssRule.style.fontFamily.replace(toReplace, replacement);
// Replace in font attribute
if (cssRule.style.font.match(toReplace))
cssRule.style.font = cssRule.style.font.replace(toReplace, replacement);
}
}
}
}
// Adjust inline styles
$('body').find('*').each(
function (i) {
if ($(this).css('font-family').match(toReplace))
$(this).css('font-family', $(this).css('font-family').replace(toReplace, replacement));
if ($(this).css('font').match(toReplace))
$(this).css('font', $(this).css('font').replace(toReplace, replacement));
}
);
// Adjust font tag properties
$('body').find('font').each(
function (i) {
if ($(this).attr('face').match(toReplace))
$(this).attr('face', $(this).attr('face').replace(toReplace, replacement));
}
);
}
完全なコードがhereです。
- 1. Androidのテキスト用のArialフォント
- 2. 「ヘルベチカノイエ」とHelveticaフォント
- 3. Helvetica Neueフォントのfirefoxで
- 4. iTextSharp - Helveticaフォントにすべての文字がありません
- 5. ブートストラップ - Arialのような安全なフォントでフォントを上書きする
- 6. MATLABのAxisパラメータのフォントをArialに変更する
- 7. ダウンロード可能なフォントHelvetica not found
- 8. WinFormsアプリケーションのクラッシュを引き起こすArial Black Italicフォント
- 9. Word 2010 VBA - "Update Fields"はフォントをArial Narrowに変更します
- 10. フォントをandroidのテキストに設定する
- 11. iTextの場所のArialの太字と私は色ではArialフォント太字を使用して、特定の位置にテキストを配置する必要が
- 12. FOPTransformerにArialフォントを含めることができません
- 13. すべてのtextviewsのフォントを変更
- 14. fpdf文書にVerdana、Bookantiqua、Arialなどの新しいフォントを追加する
- 15. PDFでArialフォントが必要です(BIRT pdf renderer、Linux)
- 16. フォント:.81em/150%Arial;なぜそれは0.81ですか?
- 17. Verdana/Arialフォントを使用して発音区別符を表示するWindows XP
- 18. すべての文字が同じフォント
- 19. ウェブ - いくつかのデバイスでArialフォントが異なって表示される
- 20. フォントを変換するフォント
- 21. セット・ラベルのテキストNSAttributedStringフォント
- 22. cairo_pdfはHelveticaではなくArialを使用します
- 23. Flexは、private var arialという埋め込みArialフォント変数にバインドします。文字列?
- 24. Jquery mobile navbarフォントの太さ
- 25. 段落のフォントを特定のフォントに変更する方法
- 26. icomoonフォントを既存のicomoonフォントに更新するには?
- 27. ポストスクリプトのテキストで異なるフォント
- 28. アラビア語のテキストを既定のフォントにデフォルト設定する
- 29. ボタンの出力テキストを特定のフォントに設定する
- 30. フォントawesome in Javascript/Jquery
正当な理由はありますか、代わりにCSSを使用できますか? JSのようなことをやっているような気持ちは悪い習慣であり、可能ならばCSSで行うべきだと感じています。 – You
私は今、すべての要素が異なるフォントファミリーを定義するスタイル属性を持つhtmlページのビジョンを持っています! –
それは私にとって有用なuserscriptのように聞こえる。 Helveticaというフォントが気に入らない場合は、それをArialに使用するすべてのWebページを変更するものをインストールしてください。 – cobbal