SafariでJSONPが文字化け
JSONPを使ったら、Safariだけ日本語が化けて困った!

そういえばajaxでもSafariだけ文字化けたりしてました。
それはサーバサイドがヘッダ情報で文字コードをutf-8と指定してレスポンスを返せば直ったはず。
が、JSONPではサーバサイドがutf-8と指定してJSONPを返しても、utf-8として認識されない。
⇒scriptタグを作るときに、charset属性で文字コードを指定することで解決しました
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("charset", "utf-8");
script.src = "testJson.do";
head.appendChild(script);
こんな感じです。

そういえばajaxでもSafariだけ文字化けたりしてました。
それはサーバサイドがヘッダ情報で文字コードをutf-8と指定してレスポンスを返せば直ったはず。
が、JSONPではサーバサイドがutf-8と指定してJSONPを返しても、utf-8として認識されない。
⇒scriptタグを作るときに、charset属性で文字コードを指定することで解決しました

var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("charset", "utf-8");
script.src = "testJson.do";
head.appendChild(script);
こんな感じです。
IEでセレクトボックスがzIndexに関わらず一番手前にしゃしゃる問題について
CSSポップアップなどを出そうとする場合、
IE6では、セレクトボックスが何よりも手前に来てしまいます。
その対処として、前面に表示させたい要素と同じ大きさのiframeを作って、要素の下に敷く、という方法があります。
http://www.beasys.co.jp/dev2dev/pub/a/2005/4/portal_menus..html
が!
上記の方法ではsrc属性が無いダミーのiframeを作って対処していますが、
この方法をhttpsのページで使った場合、セキュリティ情報警告メッセージが表示されることがあります。
src属性が無いiframe がページに含まれている場合、そのiframeのsrc属性がセキュリティ保護されているかどうかを IEが判断できないためです。
この問題は、ダミーのhtmlを用意し、iframeのsrcをそのhtmlにむけることで解決できます。
http://support.microsoft.com/kb/261188/ja
というわけで、セレクトボックスがあってhttpsなページでCSSポップアップが必要な場合は、
ダミーhtmlを用意し、そこにsrcを向けたダミーiframeを用意し、それを要素の下に敷いてやらねばならないのです!!
すべてはIEのせい。

IE6では、セレクトボックスが何よりも手前に来てしまいます。
その対処として、前面に表示させたい要素と同じ大きさのiframeを作って、要素の下に敷く、という方法があります。
http://www.beasys.co.jp/dev2dev/pub/a/2005/4/portal_menus..html
が!
上記の方法ではsrc属性が無いダミーのiframeを作って対処していますが、
この方法をhttpsのページで使った場合、セキュリティ情報警告メッセージが表示されることがあります。
src属性が無いiframe がページに含まれている場合、そのiframeのsrc属性がセキュリティ保護されているかどうかを IEが判断できないためです。
この問題は、ダミーのhtmlを用意し、iframeのsrcをそのhtmlにむけることで解決できます。
http://support.microsoft.com/kb/261188/ja
というわけで、セレクトボックスがあってhttpsなページでCSSポップアップが必要な場合は、
ダミーhtmlを用意し、そこにsrcを向けたダミーiframeを用意し、それを要素の下に敷いてやらねばならないのです!!
すべてはIEのせい。
