2004年11月26日

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

個別エントリーアーカイブでのコメント投稿後や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

Posted by yujiro at 2004年11月26日 01:38
トラックバックURL

このエントリーのトラックバックURL:
http://yujiro.dyndns.org/blog/koikikukan/mt-tb.cgi/388

トラックバック実行後、タイムアウトした旨のメッセージが表示されることがありますが、トラックバック先の処理は(これまでの経験上)正常に終了しています。正常に送信されたかどうかはトラックバック先の個別アーカイブページ等をご確認ください(タイムアウトについてはこちらの記事を参照ください)。
また同一のトラックバックが重複してしまった場合、こちらで気がついた時に適宜削除しておりますので削除のご連絡は不要です。ただし期間が空いている場合(数日とか)は気がつかない場合がありますのでご連絡ください。

コメント

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

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

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

投稿者 miaow : 2004年11月26日 09:39

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

投稿者 さえら : 2004年11月26日 10:54

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

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

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

投稿者 yujiro : 2004年11月26日 23:44

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

投稿者 yujiro : 2004年11月26日 23:51
コメントする




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

お知らせ:2005.03.13 確認ボタンクリック後、コメント内容が次ページのフォームデータに反映されなくなっています。ご迷惑おかけして申し訳ございませんが、確認後は表示されたデータをフォームデータにペーストして投稿くださいますよう、お願い致します。
コメントありがとうございます。投稿が反映されるまでに時間がかかる場合がありますが「投稿」ボタンを続けてクリックされないようお願い致します。またコメント投稿処理が終了しない場合、トップページに反映されない場合がありますがコメントは正常に投稿されています(サーバ側の不具合のようです。こちらで操作してページに反映させています)。また1回のクリックでも重複してしまう場合がありますが適宜削除しておりますのでご連絡は不要です。