TypeKeyでサイン・インしても表示が切り替わらない

サーバーを引っ越ししてMovable Typeを設置し直して、うまく行ったと思ったら、TypeKeyでサイン・インしても表示が切り替わらない。

“うっ、どこかミスったか?”と思ったのですが、よく調べてみたら、うまく切り替わらないのはIEだけ。NetscapeでもFirefoxでもちゃんと動作します。

こりゃscriptの不具合だな〜と、予想はついたものの、それを調べて書き直すだけの能力がない…。と半ば諦めつつインターネットを調べたら、すでに小粋空間にyujiroさんが解決策をアップされていました。

ということでさっそく利用させていただきました。ありがとうございます。m(_’_)m

小粋空間: TypeKeyでサイン・インしても表示が変わらない問題を対処

2004.10.27 追記:3.11-jaの場合は「Remember Me」というテンプレートモジュールが修正対象です。

修正前
function setCookie (name, value, expires, path, domain, secure) {
    var curCookie = name + “=” + escape(value) + ((expires) ? “; expires=” + expires.toGMTString() : “”) + ((path) ? “; path=” + path : “”) + ((domain) ? “; domain=” + domain : “”) + ((secure) ? “; secure” : “”);
}

function getCookie (name) {
    var prefix = name + ‘=’;
    var c = document.cookie;
    var nullstring = ”;
    var cookieStartIndex = c.indexOf(prefix);
    if (cookieStartIndex == -1)
        return nullstring;
    var cookieEndIndex = c.indexOf(“;”, cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1)
    cookieEndIndex = c.length;
    return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

修正後
function setCookie (name, value, expires, path, domain, secure) {
    var curCookie = name + “=” + (window.encodeURIComponent ? encodeURIComponent(value) : escape(value)) + ((expires) ? “; expires=” + expires.toGMTString() : “”) + ((path) ? “; path=” + path : “”) + ((domain) ? “; domain=” + domain : “”) + ((secure) ? “; secure” : “”);
}

function getCookie (name) {
    var prefix = name + ‘=’;
    var c = document.cookie;
    var nullstring = ”;
    var cookieStartIndex = c.indexOf(prefix);
    if (cookieStartIndex == -1)
        return nullstring;
    var cookieEndIndex = c.indexOf(“;”, cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1)
    cookieEndIndex = c.length;
    var value = c.substring(cookieStartIndex + prefix.length, cookieEndIndex);
    return window.decodeURIComponent ? decodeURIComponent(value) : unescape(value);

}

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください