mt-site.js について(その2:注意事項)

mt-site.js について(その2:注意事項)

Posted at November 5,2005 11:58 PM
Tag:[JavaScript, MovableType]

Movable Type 3.2-ja 以降でデフォルト・テンプレートをご利用になるか、新たにテンプレートを作成される場合、mt-site.js の振る舞いの制約上、いくつか注意する点があります。またコメント・トラックバック関連の表示でいくつかの不具合が確認されていますので、下記の修正あるいは設定を推奨します。

1.cookie登録のチェックボックスを追加

修正の対象はコメント・プレビューテンプレートです。
エントリー・アーカイブには、コメント投稿フォームに cookie 登録用のチェックボックス

この情報を登録しますか?

が存在しますが、コメント・プレビューテンプレートにはこのチェックボックスが存在しません。このチェックボックスが存在しないと、ページを開いた時に

document.comments_form.bakecookie has no properties

という JavaScript エラーが発生します。これは mt-site.js の individualArchivesOnLoad に含まれるコード

if (mtcmtauth || mtcmthome) {
    document.comments_form.bakecookie.checked = true;
} else {
    document.comments_form.bakecookie.checked = false;
}

が実行される時に document.comments_form.bakecookie がみつからないためです。
ということで、本チェックボックス(青色部分)を下記の位置に追加しましょう。

   <p>
      <label for="comment-url">URL: </label>
      <input id="comment-url" name="url" size="30" value="<$MTCommentPreviewURL$>" />
   </p>
   <p>
      <label for="comment-bake-cookie"><input type="checkbox"
         id="comment-bake-cookie" name="bakecookie" onclick="if (!this.checked) forgetMe(document.comments_form)" value="1" />
         この情報を登録しますか?</label>
   </p>
</div>

2.コメント関連タグのID属性について

mt-site.js はコメント投稿フォームにある下記のID属性を利用して表示・非表示を制御しています。

  • comments-open
  • comments-open-data
  • name-email
  • comments-open-text
  • comments-open-footer

mt-site.js ではこれらのID属性有無チェックは行っていないため、テンプレートを自作される場合(特に他へ公開される等)はこれらのタグを含むようにしましょう。

3.トラックバック関連タグのID属性について

mt-site.js はトラックバック欄にある下記のID属性を参照して、表示・非表示を制御しています。

  • trackbacks-info

3項と同様、テンプレートを自作される場合等はこれらのタグを含むようにしましょう。

4.その他1(commenter_name.js の削除)

コメント・プレビューテンプレートのヘッダ部分に記述されている

<script type="text/javascript" src="<MTStaticWebPath>js/commenter_name.js"></script>

は不要です。この行が残っているとコメント・プレビュー画面で JavaScript エラーが発生する可能性があるため削除しましょう。

commenter_name.js というファイルは、英語版の初期β版には含まれていましたが、それ以降は含まれていません。また commenter_name.js の内容は mt-site.js に包含されていますので削除しても問題はありません。

公開テンプレートでは現在コメントアウトしていますが、初期のテンプレートでは有効になっている場合があるため、JavaScript エラーになる場合はこの行を削除してください。

5.その他2(cookie登録用チェックボックスの振る舞い)

コメント投稿フォームの「情報を登録しますか?」チェックボックスのチェックを外すと、mt-site.js の forgetMe が実行され、それまで入力していたコメント情報が消去されてしまいます。お世辞にも使い勝手が良いとは言えないので、別途修正案を提示したいと思います。

とりあえず無闇にチェックを外はずないよう気をつけましょう。

関連記事
トラックバックURL


トラックバック

commenter_name.jsの謎とスクリプトエラー解決 from ういんぐめも
こちらで書いていたcommenter_name.jsの謎ですが、解決しました! 小粋空間さんのmt-site.js について(その2:注意事項)に詳しい答が載っ... [続きを読む]

Tracked on November 18, 2005 1:43 PM

MT周りの整備 from blog@browncat.org
webサーバのログを見るとommenter_name.jsがないとかエラーが出て... [続きを読む]

Tracked on December 23, 2005 2:44 AM

mt-site.jsについて ('commenter_name'は宣言されていません。) from 沢庵亭
Movable Typeを3.2にアップグレードした際に個別アーカイブを表示する... [続きを読む]

Tracked on June 6, 2006 10:59 AM

MT周りの整備 from blog@browncat.org
webサーバのログを見るとcommenter_name.jsがないとかエラーが出... [続きを読む]

Tracked on November 22, 2006 6:40 AM
コメント

いつもお世話になっております。
3.2-ja-2をインストールし、コメントプレビューを見ると、スクリプトエラーで『commenter_nameは宣言されていません』と出ます。
もちろん、テンプレートでコメントアウトされてる部分はいじっておりません。

でも、他に絵文字を使えるように追加したのですが、数日間はエラーも出ないで動いていました。
急にエラーが出るようになりました。

ちなみに、追加したのは
<$MTCommentPreviewBody$>
<$MTCommentBody$>
のタグの前後に
<MTConvertIconMacro>
</MTConvertIconMacro>
</textarea>の後ろにスクリプトタグを入れた事が原因でしょうか。

また、ヘッダー部分にスクリプトを追加する部分で…<$MTBlogURL$>…となっているところを
…<$MTStaticWebPath$>…にしているのですが、それが原因でしょうか。

たしかにエラーが『commenter_nameは宣言されていません』なので、上記は関係ないかなとも思ってます。

管理画面での設定に問題があるのでしょうか。

yujiroさんの思い当たることがあれば、ご教授をお願いできませんでしょうか。
よろしくお願いいたします。

[1] Posted by ゆき : December 13, 2005 1:38 AM

>ゆきさん
こんばんは。
JavaScript 関連のエラーのようですね。Firefox をお使いになればエラーの詳細が分かりますのでお試し頂けますでしょうか(サイトを拝見させて頂かないとすいませんが原因はわかりません)。

エラーの確認方法はJavaScript エラーを解消するを参照ください。
解消できないようであれば設定を一旦元に戻されてみるという手もあります。

以上です。
それではどうぞよろしくお願い致します。

[2] Posted by yujiro : December 14, 2005 1:30 AM

長文であまりよく書けなかったので、大変申しわけありませんでした。

一気にいろいろなスクリプトを追加してメインしか確認しなかったために、いざ他で確認したときにエラーが起きてたようです。

yujiroさんのおっしゃるとおり、全部デフォルトに戻して再度1つずつ丁寧に確認しながら設定するようにいたします。

丁寧なアドバイスありがとうございました。

[3] Posted by ゆき : December 15, 2005 1:26 AM

>ゆきさん
こんばんは。
ご連絡ありがとうございました。
確認作業、大変と思いますが頑張ってください。
ではでは!

[4] Posted by yujiro : December 16, 2005 12:39 AM

yujiroさん、いつもお世話になっております。
再び同じ質問をさせて頂きます。
以前は、いろいろ身に覚えがあったので自分でイチからやりなおしましたが、今回はどうしたらいいかわからないので、
再度質問させていただきます。

前回は、yujiroさんの提供するテンプレートと比べるとタグを何個か削除してしまっていたのでタグを戻すと正常に動きました。
今回はどうしてもわからないので一応『comment_nameは宣言されていません』のエラー以外はブログは見られるので、URLを掲載します。
Perl版ダイナミックパブリッシングというのを導入していて、メイン、エントリー、カテゴリー、日別をダイナミックにしています。

Firefoxを使っていないのでどうやって見たらいいかわからないんです。
お手数ですが、何がいけないのか教えていただけたらと思います。

ちなみに、mt-site.jsは自動的に生成されるスクリプトなので、ディレクトリなどにその実体があるわけではないんですよね?

[5] Posted by ゆき : June 7, 2006 1:44 PM

>ゆきさん
こんにちは。
mt-site.js を直接指定するとダイナミックパブリッシングエラーになっているようです。
Perl版ダイナミックパブリッシングの問題につきましては壱さんのサイトで確認された方が良いと思います(私が一度も試していないというのもあります)。
なお mt-site.js は(スタティックページの場合)再構築を契機に生成され、実体として配置されるファイルです。
それではよろしくお願い致します。

[6] Posted by yujiro : June 8, 2006 1:11 PM

yujiroさん、お返事ありがとうございます。
yujiroさんがおっしゃるように、壱さんのところで聞いてみます。
再構築が契機となると、何か対処方法のヒントにもなりそうです。
自分でもいろいろ試してみようと思います。
わざわざ確認して頂いて、ありがとうございました。

[7] Posted by ゆき : June 9, 2006 2:14 AM

>ゆきさん
こんばんは。
PHP版のダイナミックパブリッシングを試してみましたが、mt-site.js は生成NGでした。
それとは別に、ダイナミックパブリッシングは再構築時間短縮やディスク容量確保が目的ですが、mt-site.js にアクセスする元ページ(エントリー・アーカイブ・ページ等)のトラフィックやパフォーマンス(mt-site.js がスタティックページであればアーカイブページの表示が速くなる)とのバランスを考えると、mt-site.js はスタティックページにしておく方が良いでしょう。
そういう意味では、トップページやRSSフィード等もスタティックページが本来だと思います。

それではよろしくお願い致します。

[8] Posted by yujiro : June 11, 2006 1:09 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)