2007-03-07 (Wed)

* Mozilla Thunderbird で引用の色つき表示と引用符変更

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

quotecolors は Mozilla Thunderbird で引用レベルごとの文字色と背景色の変更を可能にする拡張。また、引用符を | から > に変更できる。

メールの引用記号は誰がなんと言おうと 「> 」(不等号の後に半角スペースを一個)だと心に決めている私には重宝している。

mozdev.org - quotecolors: index
http://quotecolors.mozdev.org/

- quotecolors のインストールと設定方法

インストールは http://downloads.mozdev.org/quotecolors/quotecolors.xpi を右クリックして保存し、Thunderbird の上部メニューから「ツール(T)」の「拡張機能(E)」を選択して拡張機能ウインドウを表示させる。そこに先ほど保存した xpi ファイルをドラッグ & ドロップする。

引用符を > にするには、「プレーンテキストメッセージで引用の装飾を有効にする(G)」のチェックボックスをオフにする。プレビュー付きなのでどのように変化するかは非常にわかりやすい。

2006-03-02 (Thu)

* Mozilla Thunderbird で「未読」「合計」「サイズ」を各メールフォルダに表示

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

Mozila Thunderbird ではメールを自分で作ったフォルダに好きなように格納できる。オプションをオンにすることで、各フォルダに何通の未読メールがあり、合計のメール数はいくつで、合計のファイルサイズはどれくらいかを表示することができる。

- Mozilla Thunderbird のフォルダペインの各メールフォルダに「未読」「合計」「サイズ」を表示

ツール(T) の オプション(O) を開く。
詳細カテゴリを選択する。
一般タブを開く。
□フォルダペインにメッセージ数などの列を表示できるようにする にチェックを入れる。
OK を押す。
フォルダペインの右端にカラムを設定するためのボタンが追加されるので、そこから「未読」「合計」「サイズ」にそれぞれチェックを入れる。

- 振り分けしないでラベルと検索を駆使するのが流行?

Gmail みたいにラベル (タグ付け) と検索でメールを管理し、フォルダ振り分けをしないの流行っているようだ。Thunderbird にも「検索フォルダ」という機能があるので、同じことは実現可能。

ただ、Thunderbird 1.5 では検索がそんなに速くないし、検索フォルダはどうも不安定。複数のフォルダにまたがった検索フォルダを作って、母集団のメール数が数万通になると私の Celeron 1.7GHz メモリ 512MB のマシンでは遅く感じる。というわけで、まだ振り分けに頼らざるを得ない。

2006-01-31 (Tue)

* Mozilla Firefox / Thunderbird 1.5 で「応答のないスクリプト」ダイアログ

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

Mozilla Thunerbird 1.5 を使っていると、以下のようなダイアログが表示されることがある。

警告: 応答のないスクリプト

このページのスクリプトは処理中または応答しなくなっています。今すぐスクリプトを停止するか、
処理が完了するまで待つか選択してください。

スクリプトを停止
処理を続行

どうやらスクリプトの処理に時間がかかってタイムアウトしたときに出るダイアログのようだ。私はとくに時間のかかるスクリプトを実行した覚えはないんだけど、Thunderbird が内部的に何かやっているんだろう。メール受信時のフィルタやスパム判定などで時間がかかってるのかな?

このダイアログが出ている時は、Mozilla の他にもたくさんアプリケーションを起動していてマシン全体が重くなっている。OS は複数のアプリを平行して処理できるが、私は一個のアプリしか処理できない。Mozilla にだけ構っていられる状態じゃないので、時間がかかっても良いので勝手に処理を継続してくれる方がありがたい。

要するに、こんなダイアログを出さずにしばらくの間は処理を続行してほしいわけだ。タイムアウトの閾値を延ばしてダイアログが出ないように回避するとしよう。

- about:config で dom.max_script_run_time を変更してタイムアウトまでの時間を変更

私の使っている Mozilla Thunderbird バージョン 1.5 (20051201) には、GUI で設定できるオプションにタイムアウトの閾値を設定できそうな項目が見あたらなかった。仕方がないので、ユーザー設定ファイル user.js で設定できそうな項目を探してみる。たぶん Script Timeout とかそういう名前の項目がきっとあるはず。

ツール(T) の オプション(O) の詳細設定 の設定エディタ(G) から about:config を起動し、Timeout で検索。ヒットしない。Script で検索したらどう? たくさんヒットした。その中に dom.max_script_run_time というキーがある。これかな? Google で dom.max_script_run_time を検索。どうやらこれが「応答のないスクリプト」の閾値を設定できる項目のようだ。

とりあえず初期値の5を30に変更してみた。

以下は参考にしたもじら組の掲示板。ダイアログのメッセージが英語になってるけど。

Mozilla-gumi Forum [One Topic All View / また掲示板の不調? / Page: 0]
http://forum.mozilla.gr.jp/?mode=al2&namber=10416&re ...
> Ninja Systemのアクセスコントロール(Javascriptを無効の場合アクセス制限)と”こうさぎ”が利用されているブログにアクセスすると、必ずではありませんが、かなりの確率で”Script warning”が出ます。
> ---------------------------
> A script on this page is causing mozilla to run slowly. If it continues to run, your computer may become unresponsive.
>
> Do you want to abort the script?
> ---------------------------
> 実際のところスクリプトを有効にしても(この場合は警告に対して「キャンセル」を選ぶ)、問題は起こっていないので、この警告が出ないようにしたいのですが、どこをどういじればよいのかわかりません。ご教授お願いいたします。

「Do you want to abort the script?」という警告は、
スクリプトがループしてdom.max_script_run_time(about:configでは5になっているはず)以上の時間がたった時にでるはずです。
( See http://bugzilla.mozilla.org/show_bug.cgi?id=13350 )
ダイアログで「キャンセル」してアボートさせない場合は、CPUが100%になるなどの現象は起こっていませんか?
また、ダイアログで「OK」を返してアボートさせるとどうなりますか?

なお、dom.max_script_run_timeの値はall.jsの中のものが使われるようで、
prefs.jsやabout:configで変更しても効かないようです。
( See http://bugzilla.mozilla.org/show_bug.cgi?id=247225 )

って、about:config で設定してもダメなの? それってユーザー設定を無視するというバグなんじゃないか? まあ、上記議論が行われたのは2004年だし、仕様が変わってるかもしれない。とりあえず about:config でだけ設定しておいて、効いてなさそうだったら all.js の値を変更することにしよう。しばらく様子見だね。

2006年2月2日追記。
SmallStyle で、about:config の設定が有効かどうかを試験してくださっていた。ありがとうございます。
[Firefox] 応答のないスクリプトダイアログと dom.max_script_run_time - SmallStyle (2006-01-31)
http://www.smallstyle.com/20060131.html#p01
about:config で設定された値は,うまく動作しているようです.

私の環境でも、about:config で30に設定して以来「応答のないスクリプト」ダイアログは表示されなくなっています。「実行中はUI がロックされてしまう」という問題があるとのことですが、私の場合は Mozilla を常に操作し続けているわけではないので、いまのところ問題になってはいません。しばらくこのまま運用しようと思っています。

2005-10-04 (Tue)

* Yahoo 検索で文字が表示されない・文字化けする件の対処法

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla] [IE]

Yahoo Search http://search.yahoo.co.jp/ やその検索結果画面 http://search.yahoo.co.jp/search?p=sonic64.com&ei=UTF-8& ... で、日本語が表示されなかったり文字化けするときは、ブラウザの UserAgent と Accept-Charset の設定を見直すと文字化けを解消できるかもしれない。

- UserAgent によって返されるデータが異なる?

IE コンポーネント型タブブラウザの Sleipnir Version 1.66 で Yahoo Search を見ると、アルファベットと数字以外が全く表示されない。文字化けというより、文字が欠落しているという感じ。Sleipnir がおかしいのかな? と思って Internet Explorer でブラウズすると、問題なく表示される。Firefox でも問題なく表示される。Firefox は Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7.12) Gecko/20050919 Firefox/1.0.7 を使っている。

文字化けしたときの html ソースを見ると、charset が ISO-8859-1 になっている。日本語文字列が入っているのに ISO-8859-1 を指定されていれば文字化けして当然。というか、そもそも htmlの データ自体がおかしいようだ。meta だけじゃなくて、データそのものが変。

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Yahoo!  </title>

いろいろ試した結果、UserAgent が Sleipnir Version 1.66 だと文字化けするようだ。Firefox でも同じ現象。ただ、Accept-Charset があると化けない。たとえば、Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7 を送出している場合は utf-8 で返してくれる。

文字化けしたときの HTTP トランザクション。わざと Accept-Encoding を送らないようにた Firefox でリクエストしてみた。Content-Type レスポンスヘッダにも text/html; charset=ISO-8859-1 が入ってる。

GET / HTTP/1.1
Host: search.yahoo.co.jp
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html; q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Date: Tue, 04 Oct 2005 10:18:06 GMT
P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
Cache-Control: private
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
Content-Encoding: gzip
Set-Cookie: **************************

- UserAgent を IE に偽装したら文字化けしなくなった

Sleipnir に Accept-Encoding を送出させるようにすることは大変そうなので、UserAgent をIE に偽装してやれば対処できそうだ。試しに Sleipnir の UserAgent をMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) に偽装したら文字化けしなくなった。

- 何が文字化けの原因?

これって何が原因? Apache2 で Default Charset が ASCII になっちゃうという問題があると聞いたことがあるけど、まさか Yahoo がそんな初歩的な問題につまづくとは思えない。そもそも Yahoo って Apache 使ってるのかな?

HTTP サーバー以外の部分も原因として挙げられそう。Yahoo ともなるとクライアントとサーバの間にデータの圧縮やロードバランシングを担当する機器がいろいろ入ってるだろうから、それのどこかがおかしいとか?

2005-09-29 (Thu)

* Firefox と Thunderbird の壁紙

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

Firefox wallpapers Gallery Thunderbird wallpaper gallery
http://users.otenet.gr/~fiotakis/Gallery.html

gr って Greek? ギリシャか。

http://users.otenet.gr/~fiotakis/Final58_1024.jpg を壁紙にした。大量のメールが押し寄せるメール地獄で、大事なメールをしっかりと守ってくれる Thunderbird という意味が込められている気がする。いままでは 2005-08-10 の「ソニック・ザ・ヘッジホッグの壁紙」で書いたラブリーなソニックの壁紙を使ってた。

2005-07-20 (Wed)

* Thunderbird キーボードショートカット

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

Mozilla Thunderbird にはラベルを設定するキーボードショートカットが用意されている。

- TODO ラベルは 4キーで設定できる

仕事場で Mozilla Thunderbird をメインの MUA (Mail User Agent) として使っている。

Thunderbird にはメールに「フラッグ」を設定することができる。メール一覧で該当メールのフラッグのカラムをクリックするだけで設定と解除ができる。似たような機能で「ラベル」というものもある。「重要」「仕事」「私事」「ToDo」「あとで」といったラベルを設定することができるというものだ。

いままでは設定と解除が簡単なフラッグを使っていた。しかし、フラッグには欠点がある。フラッグを設定したメールを検索で抽出することができない。これは致命的だ。事実、フラッグが設定されているが、処置がなされずに埋もれているメールが2通ほど見つかった。大した案件ではなかったが、仕事ではこれらは命取りになる。Mozilla Thunderbird には検索条件にヒットするメールを仮想のフォルダとして扱う「検索フォルダ」という機能があるので、検索条件に「フラッグを設定したメール」を指定できるのならば、それがそのまま TODO リストになるので便利だが、現行の Mozilla Thunderbird 1.0.2 ではできない。

ラベルなら検索の条件として指定することができる。しかし、ラベルの設定や解除をするには、右クリックで出てくるメニューの2階層目までたどらなければならない。これも非常に面倒だ。

- キーボードショートカットを使えばいい

何か良い方法はないかと思っていたところ、キーボードショートカットを使えばいいことに気づいた。ラベル「ToDo」を指定するキーボードショートカットは、数字の 4 キー。ラベルを解除するには数字の 0 キー。これは Thunderbird の上部メニューからたどれる所には書いていない。キーボードショートカットの一覧は、Mozilla Thunderbird のウェブページに掲載されている。

Thunderbird Help: キーボードショートカット
http://www.mozilla-japan.org/support/thunderbird/keyboard

便利そうなものを抜粋。
動作                                          キー

ラベル: ToDo                                  4
すべてを既読にする                            Ctrl/Cmd+Shift+C
スレッドを既読にする                          R
迷惑メールとしてマーク                        J
迷惑メールマークを解除                        Shift+J
メッセージのソース                            Ctrl/Cmd+U
返信 (送信者のみ)                            Ctrl/Cmd+R
全員に返信 (受信者全員)                      Ctrl/Cmd+R
すべてのメッセージを送受信                    Ctrl/Cmd+T

Ctrl/Cmd+Shift+C の「すべてを既読にする」は Netscape Messanger 4.x のころからお世話になっている。フォルダごと一気に既読にできるので非常に便利。

- Thunderbird キーボードショートカット全リスト

以下、全キーボードショートカットのリスト。

動作                                          キー

新しいメッセージ                              Ctrl/Cmd+M  または Ctrl/Cmd+N
(新しいウィンドウで) メッセージを開く        Ctrl/Cmd+O
ウィンドウを閉じる                            Ctrl/Cmd+W
印刷                                          Ctrl/Cmd+P
コピー                                        Ctrl/Cmd+C
切り取り                                      Ctrl/Cmd+X
削除                                          Del
貼り付け                                      Ctrl/Cmd+V
すべて選択                                    Ctrl/Cmd+A
元に戻す                                      Ctrl/Cmd+U
やり直し                                      Ctrl/Cmd+Y
キャレットブラウズモード                      F7
新しいメッセージとして編集                    Ctrl/Cmd+E
すべてのスレッドを広げる                      *
すべてのスレッドをたたむ                      \
次を検索                                      Ctrl/Cmd+G または F3
Find As You Type (リンクのみ)                '
前を検索                                      Ctrl/Cmd+Shift+G または Shift+F3
このメッセージを検索                          Ctrl/Cmd+F
メッセージを転送                              Ctrl/Cmd+L
現在のアカウントの新着メールを受信            Ctrl/Cmd+T
すべてのアカウントの新着メールを受信          Ctrl/Cmd+Shift+T
メッセージペインの表示・非表示切り替え        F8
次のメッセージ                                F
次の未読メッセージ                            N
次の未読スレッド                              T
前の未読メッセージ                            B
前の未読スレッド                              P
次のペインへ移動                              F6
検索バーへ移動                                Ctrl/Cmd+K
文字サイズを拡大                              Ctrl/Cmd++
文字サイズを縮小                              Ctrl/Cmd+-
文字サイズを元に戻す                          Ctrl/Cmd+0
ラベル: なし                                  0
ラベル: 重要                                  1
ラベル: 仕事                                  2
ラベル: 私事                                  3
ラベル: ToDo                                  4
ラベル: 後で                                  5
メッセージの未読・既読切り替え                M
スレッドを既読にする                          R
すべてを既読にする                            Ctrl/Cmd+Shift+C
送信日時で既読にする                          C
迷惑メールとしてマーク                        J
迷惑メールマークを解除                        Shift+J
メッセージのソース                            Ctrl/Cmd+U
返信 (送信者のみ)                            Ctrl/Cmd+R
全員に返信 (受信者全員)                      Ctrl/Cmd+R
メッセージを名前を付けて保存                  Ctrl/Cmd+S
メッセージを検索                              Ctrl/Cmd+Shift+F
メッセージを今すぐ送信                        Ctrl/Cmd+Enter/Return
メッセージを後で送信                          Ctrl/Cmd+Shift+Enter/Return
すべてのメッセージを送受信                    Ctrl/Cmd+T
停止                                          Esc
終了                                          Ctrl/Cmd+Q

プロポーショナルフォント環境では盛大にずれてると思うけど、気にしないでおく。

2005-07-07 (Thu)

* Mozilla Thunderbird に eml ファイルをインポートする

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [メール] [Mozilla]

手元に eml ファイルが50個ほどある。これを愛用のメールクライアントである Mozilla Thunderbird にインポートしたい。
当該 eml ファイルは、Outlook Express で受信したメールをエクスポートしたもの。

- 一度 Outlook Express にインポートしてから、Thunderbird にインポートする

eml ファイルはテキストファイルなので、いろいろと方法はあると思う。専用のツールがあるかもしれないし、eml インポートのためのインターフェイスが Mozilla Thunderbird に用意されているかもしれない。

しかしながら、今回は直接 Mozilla Thunderbird にインポートする方法を見つけられなかったので、一度 Outlook Express にインポートしてから Thunderbird にインポートする手順を踏む。

Outlook Express 6 を起動し、受信トレイを開く。
右上のメール一覧ペインに該当ファイルを全部ドラッグ & ドロップすると、Outlook Express にインポートできる。

Mozilla Thunderbird 1.0.2 を起動し、上部メニューの ツール(T) の インポート(I) を選択。

インポートする内容の選択で「メールボックス」を選択。
インポート元のプログラムの選択で「Outlook Express」を選択。
Mozilla Thunderbird の「ローカルフォルダ」にインポートしたメールが生成される。

2005-04-16 (Sat)

* Live Http headers - HTTP ヘッダ表示ツール

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

Live Http headers は HTTP リクエストとレスポンスを表示してくれる Mozilla / Firefox 用拡張。

mozdev.org - livehttpheaders: index
http://livehttpheaders.mozdev.org/

http://livehttpheaders.mozdev.org/installation.html からインストールできる。

- Live Http headers を使うと何がうれしいのか

Web アプリケーション開発やチューニングの役に立つ情報が見られる。

サイトを閲覧するためだけにブラウザを使っている場合、HTTP リクエストヘッダやレスポンスヘッダをあまり意識することがない。せいぜい 404 Not Found とかくらいじゃないかな。ブラウザが面倒な部分を処理してくれているおかげだ。でも、Web アプリケーション開発においてはサーバとクライアントがやりとりしている内容を強く意識しなければならないときがある。

たとえば、ブラウザの種類によって表示する内容を変えたい場合、User-Agent リクエストヘッダを見てブラウザの種類を判別する。どんな User-Agent リクエストヘッダを送っているかが分かれば、動作テストがやりやすい。

- Live Http headers が表示する内容

以下のように、リクエストした URL、 HTTPリクエストヘッダ、HTTP レスポンスヘッダを表示してくれる。ちなみに、設定を変えることで、GET メソッドだけでなく POST メソッドでリクエストした内容も表示することができる。

http://sonic64.hp.infoseek.co.jp/

GET / HTTP/1.1
Host: sonic64.hp.infoseek.co.jp
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.7.6) Gecko/20050318 Firefox/1.0.2
Accept: text/xml,application/xml,application/xhtml+xml,text/html; q=0.9,text/plain; q=0.8,image/png,*/*;q=0.5
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Date: Sat, 16 Apr 2005 13:08:18 GMT
Server: Apache
Content-Length: 66145
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Content-Type: text/html

ん? http://sonic64.hp.infoseek.co.jp/ のサーバって 最終更新時刻を示す Last-Modified を返してくれないんだな。HTTP 圧縮転送をしてくれてないことは 2004-02-12 の 「サーバのHTTP圧縮転送の有効/無効を確認できるサイト」で確認してたけど、Last-Modified さえ返してくれてなかったとは。

Last-Modified を返してくれるサーバだと、クライアントは「2005年4月15日 22時8分42秒よりも内容が新しくなってたらデータを送って。新しくなってなかったら、前と変わってないって教えてくれればいいから。」っていう効率的なアクセスができ、ネットワーク転送量やサーバの負荷を軽減できる。それをやらないのは非効率的だと思うんだけどな。まあ、たぶん上下に付いてる広告を常に最新の状態でクライアントに返したいから Last-Modified を返してないんだろうな。

- 正規表現によるフィルタ機能

Live Http headers で表示する URL を絞り込む機能。正規表現で指定できる。画像やスタイルシート、JavaScript や favicon の HTTP ヘッダは普段あまり必要な情報ではないので、Exclude URLs with regexp にチェックを入れておくと余計な情報をカットできる。

□ Filter URLs with regexp  /$|.html$
□ Exclude URLs with regexp  .gif$|.jpg$|.ico$|.css$|.js$

- POST データの表示方法を選択可能

Config タブで指定できる。

POST メソッドでリクエストするときに、そのデータをどう表示するかを指定できる。たとえば、Web メールなどで添付ファイルを POST するとき、1MB のデータを延々表示させても意味がない。普段は fast で良いんじゃないかな。

none
POST データを一切表示しないモード。

fast
「Fast Code」方式で POST データを表示するモード。ファイルアップロードの時は動作しない。

accurate
全 POST データを正確に表示するモード。遅いけど、ファイルアップロードの時でも中身を表示する。

max 1K
POST データの先頭 1キロバイトを表示する。

- Replay 機能

HTTP リクエストを自在に編集してリクエストし直すことができる。
たとえば User-Agent を書き換えてリクエストしたり、POST メソッドを GET メソッドに変えたり、If-Modified-Since を変えたり。サーバ側のテストをするときに有用。

- 別窓で表示可能。

Firefox のブラウザとは別のウインドウで表示できる。常に HTTP トランザクションの中身を表示しておけるのでとても便利。

2005-03-19 (Sat)

* Mozillaで XSLT適用後のDOMのinnerHTML にアクセスするとエラー

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla] [XML] [JavaScript]

2005-03-16 の「RSS を XSLT で html に変換して見栄え良く表示する」において、「Mozilla の XSLT プロセッサは disable-output-escaping="yes" を無視する」という現象を書いた。Misc Change Log のいわたさんがいろいろと調査してくださった。ありがとうございます。

- 本家 bugzilla には登録済み

Bug 98168 - <xsl:text disable-output-escaping="yes"> not working
https://bugzilla.mozilla.org/show_bug.cgi?id=98168

すでに本家には登録済みなんですね。bugzilla をチェックすることまでは思いが至りませんでした。
このバグは
Status:  VERIFIED
Resolution:  WONTFIX
になってるってことは、えーと、

Bugzilla の検索フォームを使用するためのヘルプ
http://bluequartz.org/bugzilla-jp/queryhelp.cgi
VERIFIED- QA がバグと処理方法を見た上で、適切な処理がなされたと同意した。
(略)
WONTFIX - 将来にわたって修正されることはないとされた問題。

すなわち修正されないってことが決まったってことですか。ええー、そんなー。

- JavaScript で「Mozilla の XSLT プロセッサは disable-output-escaping="yes" を無視する」に対処する

いわたさんが書いてくださったのが以下の JavaScript。

disable-output-escaping="yes"
http://quasiquote.org/log/2005/03/18/disable-output-escaping
代替案としては上のリンクにあるように、innerHTML をいじればいいのだろうか。

      ...
      </head>
      <script type="text/javascript">
        function onload_cb() {
            var elements = document.getElementsByTagName('div');
            for (var i = 0; i &lt; elements.length; i++) {
                var el = elements[i];
                if (el.className == 'description') {
           el.innerHTML = el.textContent;
                }
            }
        }
      </script>
      <body>
    <xsl:if test="system-property('xsl:vendor')='Transformiix'">
     <xsl:attribute name="onload">onload_cb()</xsl:attribute>
    </xsl:if>
    <div class='description'>
     <xsl:value-of select="content:encoded" disable-output-escaping="yes"/>
    </div>
    </p>
      ....


みたいにしてみたけど、innerHTML に代入するところで例外吐いて死ぬ。ううむ。

確かにエラーになりました。Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.7.5) Gecko/20041108 Firefox/1.0 です。でも何でだろう? el.innerHTML = el.textContent; の右辺の el.textContent を固定文字列に変えてもエラーになるので、innerHTML のアクセス時の例外か。

Firefox の JavaScript コンソールに表示されたエラー
エラー: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLElement.innerHTML]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: file:///E:/cygwin/home/sonic/public_html/log/cl.xml :: onload_cb :: line 6"  data: no]

- XSL 変換後文書の DOM ツリーをチェックしてみる

Firefox 付属の DOM インスペクタで XSL 変換後の文書の DOM ツリーを確認したが、問題なさそうだ。エラーになる原因として考えられるのは、XSL 適用後の DOM ツリーの場合、innerHTML にはアクセスできないという制約または仕様の存在かなあ。

html に XSL 変換後の文書をハードコーディングしたときはちゃんと el.innerHTML = el.textContent; が動作する。以下の html を euc-jp で保存して Firefox にレンダリングさせたら、エスケープした h1 がちゃんとエスケープ解除されて html としてレンダリングされた。つまり、JavaScript 自体には問題がないということだ。

<html lang="ja"><head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<!-- 京 -->
<title>Landscape - エンジニアのメモ</title>
<link rel=stylesheet href="diary.css" media="all">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">

    <script type="text/javascript">
        function onload_cb() {
            var elements = document.getElementsByTagName('div');
            for (var i = 0; i < elements.length; i++) {
                var el = elements[i];
                if (el.className == 'sec_body') {
                  el.innerHTML = el.textContent;
                }
            }
        }
    </script>

</head>
<body onload="onload_cb()">
<div class="day">
<p class="pdate"><span class="date"><a name="2005-03-16" href="2005-03-16.html">2005-03-16 (Wed)</a></span></p>
<div class="body">

<div class="section">
<div class="subtitle"><h2><a name="2005-03-16-1" href="2005-03-16.html#2005-03-16-1"><span class="sanchor">*</span></a> <strong class="clitemheader">XML: RSS: RSS を XSLT で html に変換して見栄え良く表示する</strong></h2><p>この記事の直リンクURL: <a href="2005-03-16.html#2005-03-16-1" title="この記事にリンクする場合などに使う恒久的な URL">Permlink</a> | この記事が属するカテゴリ:  [<strong><a href="cat_xml.html" title="XML カテゴリの記事一覧">XML</a></strong>] [<strong><a href="cat_rss.html" title="RSS カテゴリの記事一覧">RSS</a></strong>]</p></div>
<div class="sec_body">

&lt;h1&gt;H1&lt;/h1&gt;

</div>
</div>
</div>
</div>
</body>
</html>

うーん、今回は有効な対処法がなかったなあ。Google で disable-output-escaping を検索したら、属性値のエスケープを解除する裏技的な方法はあったんだけど、私がやりたいことには応用できなさそうだし。

属性値のエスケープ無効化 - XML & SOA
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1206 ...
飛騨の職人さんのような、手作りも現在は可能です。
[xml-users 8826] Re: MSXMLと.NETFramework ClassLibraryのXSLT変換の相違
http://www2.xml.gr.jp/log.html?MLID=xmlusers&TID=8815

<xsl:for-each select = "@*">
<xsl:text> </xsl:text>
<xsl:value-of disable-output-escaping="yes" select="name()" />
<xsl:text>=</xsl:text>
<xsl:text disable-output-escaping="yes">"</xsl:text>
<xsl:value-of select="." />
<xsl:text disable-output-escaping="yes">"</xsl:text>
</xsl:for-each>

XSLT !斬り!

とりあえず今回はお手上げ。

2004-02-27 (Fri)

* Mozilla FireFox 壁紙

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

FireFox の壁紙。各種サイズが揃ってる。やっぱり手がカァァァわィィィィィィィィィィ〜〜 とっても とっても! でも右手だか左手だかわからないよ。どちらでも良いけどね。よく見るとお化けの手にも似てるな。

hicksdesign :: firefox resources
http://www.hicksdesign.co.uk/downloads/firefox/

作った人はデザイナらしい。さすがプロ。
http://www.hicksdesign.co.uk/about/index.php
Hicksdesign is a one-person design studio, started by Jon Hicks in 2002, after 8 years working as a designer with charities, government bodies and publishers.

Going My Way から。
http://kengo.preston-net.com/archives/001197.shtml

2004-02-09 (Mon)

* Mozilla FireFox 0.8 リリース

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

「Firebird」から「Firefox」へ、Mozilla Firefox 0.8リリース
http://slashdot.jp/article.pl?sid=04/02/09/1037249

おお、また名前が変わったのか。FireBird だと DB の FireBird と名前が被っちゃうけど、firefox なら問題ない・・・。って、G-SHOCK にあったような。あれは firefox じゃなくて、FOXFIRE だったっけ。

FireFox、火狐か。火狐と聞いて最初に浮かんだのがタクティクスオウガのフェンリルだけど、よく考えたらフェンリルは水属性で火とは相反する。火はサラマンダーだったっけ。しかもフェンリルは狼だそうで、狐じゃない。なんか全然関係ないな。

パワードコムにはまだミラーされてないか。ミラーされたら試してみよう。
http://ring.pwd.ne.jp/pub/net/www/mozilla/

- Let's Try! Let's Try!

ミラーされたので試してみた。
http://ring.pwd.ne.jp/pub/net/www/mozilla/firefox/releases/0 ... から FirefoxSetup-0.8.exe をダウンロード。本家 ftp も確認したのだが、win32.zip 版は存在しないようだ。以前は zip があったような。って、インストーラも新機能の一つという位置づけなのか。

0.7.1 のときに使っていたプロファイルは消さずに、exe 版からインストール。リリースノート http://jt.mozilla.gr.jp/products/firefox/releases/ には プロファイルを消してからインストールせよと書いてあるが、消すのは問題が出てからでいいやと思い、とりあえずインストール。

あっという間にインストール終了。起動してみると、0.7.1 とあんまり変わってないな。変更点は・・・ブックマーク周りとダウンロードマネージャか。あまり私には関係ないなあ。FireFox ロゴの火狐の手(足?)のがかわいい。「えむもじら」に About Firefox から撮った大きめのスクリーンショットがあった。

Mozilla Firefox 0.8 リリース
http://www5e.biglobe.ne.jp/%7Elevel0/mozilla/news200401.html ...

- レッサーパンダ

FireFox ってレッサーパンダって意味なのね。で、レッサーパンダってどんな動物だったっけ? カルビーのポテチの袋の裏に書いてあった動物? Google で カルビー ポテトチップス 袋 パンダ を検索しても期待するページがヒットしない。仕方ないので普通に調べることにする。Google でレッサーパンダを検索するとヒット。さらに Google イメージでレッサーパンダを検索すると画像がたくさんヒット。http://images.google.co.jp/images?q=%E3%83%AC%E3%83%83%E3%82 ... カァァァわィィィィィィィィィィ〜〜 とっても とっても! って感じだ。アライグマと似てるね。あ、レッサーパンダはアライグマ科なのか。

2003-05-19 (Mon)

* hiddenWindow.xul

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

2003-05-10 (Sat)

* 日本の Mozilla Nightly Build FTP ミラーサイト

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

ring.pwd.ne.jp/pub/net/www/mozilla/mozilla/nightly/

パワードコムには RedHat の iso もある。なかなか頑張ってるサイトだ。
ring.pwd.ne.jp/pub/linux/RedHat/redhat/linux/

追記。パワードコムは Ring Server のサービスを終了したとのこと。いままでミラーをありがとう。

株式会社パワードコムのサーバは,12/20でサービスを終了いたしました.いままでどうもありがとうございました.(2005/12/20)

2002-09-13 (Fri)

* Mozilla の User-Agent を変更

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

User-Agent を Mozilla/5.0 (X11; U; Linux i686; ja-JP; rv:1.2a) Gecko/20020911 にしてみた。user.js を作成して、そこに記述。

user_pref("general.useragent.override", "Mozilla/5.0 (X11; U; Linux i686; ja-JP; rv:1.2a) Gecko/20020911");

なんでわざわざ User-Agent を変えるのかって? 伊達と酔狂のためだよ。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。