Operaのフォントが汚く表示されてしまう問題について
Thursday, March 18, 2010 3:56:41 PM
Opera10.50を使っていて、あるページにて日本語が汚い!っということに遭遇したことは一度はあるはずです。
今日はその問題を修正するユーザーJavaScript(以下ユーザーJS)を作りましたので紹介します。
以下がその問題を修正するユーザーJSです。
DefFontSet
右クリックなどしてユーザーJSのフォルダに保存してくださいね。
あ、一応ユーザーJSを使ったことない人にわかるように説明します。
使い方を紹介するのでユーザーJSなど細かいことについて知りたい人は各自検索してください:happy:
- メニューの設定→設定で設定ウィンドウを開く。 (Ctrl+F12が楽)
- 詳細設定のタブをクリック。
- コンテンツを選択。
- JavaScript オプション...を選択。
- ユーザー JavaScript フォルダを適当な所に指定する。ユーザーJS用のフォルダを作っておくといいと思います。
- 指定したフォルダにDefFontSet.jsを入れる。
- 後は普通に使えばOK.Operaの再起動などは必要ありません。
さて、さっきダウンロードしようとして、間違えてクリックした方はネタバレかもしれませんが、ソース公開。
// ==UserScript==
// @name DefFontSet
// @author _X_y_z_
// @namespace http://yaxyz.web.fc2.com/
// @description Opera10.50にて汚く表示されてしまう日本語を通常通りに修正します。
// @version 1.00
// ==/UserScript==
//Created by _X_y_z_.
(function () {
document.getElementsByTagName("html").item(0).setAttribute("lang","ja");
})();
//End of file.
…
短いですよね。
しかしこれで解決してしまいます。最初コピーライトつけてましたが、どう考えてもつけるものじゃないと判断して、Createdにしました。
というか、物凄くユーザーJS苦労した。何で!?何で動かないの!?っていうのに遭遇しまくり。
コードの//End of file.がないと動きません。別に文字は何でもいいんですかね?セミコロンを10個だか20個くらいに置き換えても動作します。謎すぎます。ファイルサイズの問題なんでしょうか何なんでしょうか。…やっぱり謎です。
ちなみにこのユーザーJSの注意。ユーザーJSは仕様により、httpsのアドレスで動作しません。セキュリティですね。
一応、opera:config#User JavaScript on HTTPSのチェックを入れれば動作するにはするんですが、いちいち警告がうざいです。そこまでしなくてもって話な感じがします。
こっからはこの問題の解決に気づいたまでのどうでもいい話。
何はともあれ、原因はhtmlタグのlang属性の値に問題があったようです。
当初、この問題に遭遇した時は、cssのフォントの指定がいけないのかな?と思ってました。しかし、自分のウェブサイトでは、欧文フォントを結構使っていたのに、汚く表示されないことに気づき。
んで、今日…昨日ですね。なぜかlang設定に問題があることに気づきました。lang設定をしてないとOperaが自動的にenと判断するのでしょうか。試しに自分のサイトでenと書き換えてみたところ見事に汚くなりました。
よく見れば汚く表示されてしまうサイトはlangがenだったり指定していなかったり。そんなわけでDefFontSetは生まれたわけです。正直、ネームは適当です(笑)
ちなみに、このユーザーJSで何か問題が起きても責任はおいませんよ。
では、快適なOperaライフを。















Kazu Sparakazuspara # Saturday, August 7, 2010 11:32:03 PM