MT - IE8とSafari4だとコメント確認画面でCaptchaが表示されない
一週間くらい前に Movable Type 4.26 が出ていたので、そろそろ適用しようかと思い、本日適用しました。
でアップデートが完了して、しばらくしたら、なんと MT 4.261 がリリースされました・・・
バグフィックスらしいので仕方がないですが、何と言うタイミングの悪さ・・・
勘弁してくれよー・・・と思いながらも、結局やらなくちゃいけないのでアップデートしました。
て、色々機能が正しく動くか確認していたら何か変なバグを発見。
コメントの確認画面を表示した際に、IE8 と Safari4 だと Captcha の画像や入力フォームが表示されません・・・
しかも、この現象は、このブログではなくて、先日公開した新しいサイトの方のみ・・・
(まだ、ブログではアナウンスしてないんですけど「リコメン道」と言うサイトを作ってます。)
っと言う事で、調査してみました。
整理すると、問題は IE8 と Safari4(Win) で発生しました。
Chrome2 や Firefox3 では発生しません。
IE6/7 で発生するかどうかは調べて無いので分かりません。
そもそも、ブラウザ自体の問題なのか、ブラウザの設定の問題なのかも分かりません。
「リコメン道」では発生しますが、「INOLOG Ver.2」では発生しません。
何となく、テンプレート絡みだろうなー思い、「コメントプレビュー」テンプレートを見ていると、「INOLOG」と「リコメン道」では以下の様な違いがありました。
ちょうど Captcha が表示される辺りに、
と言う、タグが「INOLOG」には有りますが「リコメン道」には有りません。
ドキュメントを見ると、MTCaptchaFields には以下のような説明が書いてあります。
CAPTCHA 認証を利用する設定を行っている場合、認証用の画像とインプットフィールドを表示します。
これを見る限り、MTCaptchaFields を追加すれば良さそうです。
そう言えば、Captcha を INOLOG で使い始めたばかりの頃も、上手く表示されなくて悩んだ事があったんですが、その時に追加したようなしなかったような・・・
ただ、「リコメン道」でも普通の記事の画面のコメントフォームには Captcha が表示されていたので、そのテンプレートを見てみると、MTCaptchaFields 何てどこにもありません。
なんで出てるの??って感じなんですが、怪しいのが以下の部分。
どうやら、JavaScript で上記の部分を書き換えているような感じ。
うーん、激しくめんどくさい。
確かに、記事ページのコメントフォームでは IE8/Safari4 と Firefox3/Chrome2 でレンダリングに違いは殆ど無いんですが、コメントプレビューになるとチョット変わるんですよね。
どのように変わるのかと言うと、IE8 と Safari4 だと、コメント入力欄以外が消えるんですよ・・・
ページが表示された後に・・・
明らかに JavaScript ですよねー。
勘弁してくれよー・・・
何の意味があるのかは知りませんが、ページをレンダリングした後に入力フォームに対して何かしらの操作を行っている訳です。
で、たぶんそれのせいで Captcha の画像や入力フォームが出てこない・・・
たぶん JavaScript の呼び出しを解除するか、バグっぽい部分を書き換えると直るんだろうけど、時間がかかりそうなので強引ですが以下の方法で対処しました。
これだと、全てのブラウザでコメント確認画面でも Captcha の画像と入力フォームが表示されました。
この手の、テンプレート周りの不具合は、Movable Type を使っている限り仕方がない事ですけど、メンドクサイです・・・
コメント