サーバーを引っ越しして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);
}