個別エントリーアーカイブでの文字化けの原因

個別エントリーアーカイブでの文字化けの原因

Posted at November 26,2004 1:38 AM
Tag:[]

個別エントリーアーカイブでのコメント投稿後やTypeKey認証後の文字化けを解消する記事をこちらに投稿しましたが、Daily noteさんのアドバイスより「『続きを読む』を折りたたむスクリプトを入れると文字化けする」とのことで(確認&ご連絡ありがとうございました)、早速試験サイトで試してみました。

実験結果は、試験サイトでも「続きを読む」がある記事へコメントを投稿すると100%文字化けしました。さらに続きを読むの部分(HTML/JavaScript)を色々切り分けた結果、JavaScriptの ShowHide 関数

function showHide(entryID, entryLink, htmlObj) {
    extTextDivID = ('Text' + (entryID));
    extLinkDivID = ('Link' + (entryID));
    if( document.getElementById ) {
        if( document.getElementById(extTextDivID).style.display ) {
            if( entryLink != 0 ) {
                document.getElementById(extTextDivID).style.display = "block";
                document.getElementById(extLinkDivID).style.display = "none";
                htmlObj.blur();
            } else { 
                document.getElementById(extTextDivID).style.display = "none";
                document.getElementById(extLinkDivID).style.display = "block";
            }
        } else {
            location.href = entryLink;
            return true;
        }
    } else {
        location.href = entryLink;
        return true;
    }
}

この中の赤色部分

document.getElementById(extTextDivID).style.display

の記述で文字化けが発生しているようです(この行と下の同じような記述を削除すると発生しませんでした)。さらに厳密に言うと、

document.getElementById(extTextDivID).style

で発生します。つまりHTMLのstyle属性を参照するところで文字化けを引き起こしています(getElementById までであれば発生しません)。このJavaScriptは「続きを読む」をクリックしないと起動されない(onclick属性で起動)スクリプトなのですが、投稿後のレンダリング時点で文字化けを発生させます。

なお根本的な解決案は現在のところ見つかっておりません(ということで先の対処が生まれました)。個別アーカイブに「続きを読む」をご利用の方にはご迷惑おかけ致しまして大変申し訳ございません。この場をお借りしてお詫び申し上げます。m(__)m

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


コメント

こんにちは。
お知らせありがとうございます。

細かい検証をしてくださってありがとうございます。
うちでは実際に現象が起こる(ワタシも)方とそうでない方がいらしたようで
そのあたりはよく分かりませんでしたが
厚かましく問い合わせをさせてもらった次第です。^_^;
それぞれの環境の違いということから
他の方々のところではあまり起こっていない(印象だけですが)のだと思っていましたが
どうなのでしょう。

.htaccess 設定が効果を発揮してくれて問題解消です♪
どうもありがとうございました。
次に挑むのは…(笑) またよろしくお願いします。

[1] Posted by miaow : November 26, 2004 9:39 AM

やむやむでは 個別アーカイブに「続きを読む」を入れてるのに 続きを読む、がある記事にコメントをしても 文字化けしません。文字化けしないからいいようなものだけど、どうしてしないのかな、気になります。

[2] Posted by さえら : November 26, 2004 10:54 AM

>miaowさん
こんばんは。
そうですね?。
たしかに他の方も結構折りたたみを導入されているので、文字化けする連絡があってもおかしくないのですが。
サーバ・OS・ブラウザ等の環境が異なると発生しないのでしょうか…謎です。

そういえば私のサイトも「続きを読む」がある記事にコメントして文字化けしているのは記憶にないのですが、他の方がコメントしたら文字化けしているのかも知れません。

いずれにしても .htaccess は効果ありということでとりあえず結果オーライですね。(笑)

[3] Posted by yujiro : November 26, 2004 11:44 PM

>さえらさん
こんばんは。
文字化けしないのはサーバの設定でしょうか。
または環境や設定方法によって動作が微妙に異なっているのか、この辺は謎が深まるばかりです…。

[4] Posted by yujiro : November 26, 2004 11:51 PM

いつもお世話になり、ありがとうございます!
MTのデフォルトのテンプレートをカスタマイズして使用していますが
macだと、コメント投稿部分が文字化けしてコメントできない様なのです。
何が原因でしょうか。直すことは出来ますか?

それと、先日アドバイスいただいた、『メインページに 表示させたいエントリーの数を指定したい場合』 のタグについてですが
『lasten="n"』でうまくいきました。ありがとうございます。それで、なのですが・・
1エントリーのみ表示の時は良いのですが、2エントリー以上表示させる時に、各エントリーの上に "prev/main/next"が表示されてしまいます。2つ以上のエントリーを表示させる場合は、メインページの一番上に"prev/"と表示されるだけで良いのですが。。
これも変えられないのでしょうか
よろしくアドバイスお願いします。

[5] Posted by はる : September 12, 2005 5:12 PM

>はるさん
こんばんは。
ご質問の件ですが、ご利用のブラウザがMacIEでしたら、巷で出回っている対処方法はスタイルシートに下記を加えるようです。

textarea,select,input { font-family: "ヒラギノ角ゴ Pro W3","Hiragino Kaku GothicPro","Osaka","Verdana","Helvetica","Arial","MS Pゴシック","sans-serif"; }

他にもブラウザの設定を変更する対処があるようです。「Movable Type Mac コメント 文字化け」でgoogle検索されてみてください。

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

2つ目のご質問は prev/main/next が何かが分かりません(メインページにはそういう表示をするタグはないという認識です)。
差し支えなければその状態になっているサイトを拝見させて頂けないでしょうか(公にされたくないのであればメールでURLをお知らせください)。

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

[6] Posted by yujiro : September 13, 2005 1:05 AM

ありがとうございます
文字化けの対処法、早速施してみました。改善されたようです。ありがとうございました!

2つ目の質問なのですが
コチラのブログにも、各個別エントリーページの上に表示されています。
次のページ、前のページへのリンク(ナビ)です
>
と、ありますよね。
クリックすると、次のエントリーや前のエントリーにジャンプできるものです。
これが、各エントリーごとに表示されるのです。
メインページに1エントリーの場合は良いのですが、メインページに2エントリー以上表示させる場合、なんだかうるさい感じに見えるので、メインページの一番上にだけ表示させたいのです。
お分かりいただけたでしょうか。。
この説明でまだ不十分であれば、やはりメールさせていただきます。いつもすみません。よろしくお願いします

それともう1つです^^;
サイドバーのリンクが増えてきたので、こちらの記事を参考にさせていただいて、プロフィールのページを作る要領でリンクページも作ってみたのですが、レイアウトや文字の色など、メインページと違った設定には出来ないでしょうか。
たとえば、文字のレイアウトや色、ページの配置そのものも変えることは出来ますか?
横分割を 縦分割にできますか?

[7] Posted by はる : September 16, 2005 12:12 AM

>はるさん
こんばんは。
ご質問の件ですが、一応回答らしきものを書いておきますと、個別エントリーアーカイブのリンクはテンプレートにある、前後記事のリンク

<MTEntryPrevious> <a href="<$MTEntryPermalink$>">« <$MTEntryTitle$></a> | </MTEntryPrevious> <a href="<$MTBlogURL$>">メイン</a> <MTEntryNext> | <a href="<$MTEntryPermalink$>"><$MTEntryTitle$> »</a> </MTEntryNext>

を削除すれば表示されなくなります。

またメインページの上に個別エントリーアーカイブのような前後の記事にジャンプするリンクをつける場合は「ページ分割プラグイン」で行うことになります。ただし記事のタイトルを表示させることはできません。

ご質問の認識が誤っていたらすいませんが再度ご連絡ください。

2番目の質問ですが、リンクページの body 要素に class 属性(例えば linkpage)を

<body class="linkpage">

と追加して、スタイルシートに同じ名称のクラスセレクタを追加し、そこにフォント等のプロパティを

body.linkpage {     font: #000000; }

と設定すればページ毎にデザインを切り替えることは可能と思われます(id属性でも同じです)。
レイアウトの変更方法はMovable Type 3.2テンプレートの記事をご参考にして頂ければ幸いです。

縦分割はヘッダ・フッタと同じ要領です(float 指定をせずに divタグで区切れば縦に分割されると思います)。

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

[8] Posted by yujiro : September 16, 2005 7:39 PM

こんばんわ
お返事遅くなってすみません
すみません。私の文章が拙いために、質問の意図がちゃんと伝わってないように思いました^^;

メインページから、前のエントリーへのリンクを貼りたかったために、
個別エントリーアーカイブにある ”次・前ページへのリンク”のタグを、メインページにも貼っていました。その結果 メインページに、2エントリー以上表示させる設定にすると、各エントリー上にそのリンクがいちいち表示されると言う状態になってしまいました。

メインページの上に、前ページへのリンクを貼る方法を知りたかったのですが・・
私なりに調べましたところ、個別エントリーアーカイブの、”次・前ページへのリンク”のタグに
"header"と追加すれば、良かったようです
これで改善できました。ありがとうございました。

お手数おかけしました。
ありがとうございます

[9] Posted by はる : September 24, 2005 1:40 AM

>はるさん
こんばんは。
ご連絡ありがとうございました。
なにはともあれ、うまくできたようで良かったです。
ではでは!

[10] Posted by yujiro : September 25, 2005 12:57 AM

僕もその本買わせていただきました

まったくの初心者である僕でも

すごくわかりやすくて重宝しております

貴重な書籍を出していただきありがとうございました

[11] Posted by キムラ : December 17, 2007 3:10 PM

>キムラさん
こんにちは。
拙著お買い上げくださりありがとうございました。
お役に立てているようで良かったです。
ではでは!

[12] Posted by yujiro logo : December 18, 2007 10:09 AM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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