Google Maps API が国際化ドメイン名 (IDN: Internationalized Domain Name) サイト内に表示できない
Google Maps を任意の Web サイト内に表示する為には、表示するサイト毎に Google Maps API Key を取得しなければならないのだが、http://ドメイン名例.jp/ というような、国際化ドメイン名(日本語ドメイン名)のサイト用に Google Maps API Key を取得しようとするのだが、うまくいかない。
なぜか、国際化ドメイン名に対応していないブラウザ(IE6: Internet Explorer 6 等)では、http://xn--eckwd4c7cu47r2wf.jp/ といったpunycode表記で Google Maps API Key を取得すればうまくいくのだが、国際化ドメイン名に対応しているブラウザ(IE7: Internet Expolorer 7, Firefox 等)では、http://xn--eckwd4c7cu47r2wf.jp/ 用の Google Maps API Key で記述しても、http://ドメイン名例.jp/ 用の Google Maps API Key で記述しても、どちらもうまくいかない。
Google Maps API では、JavaScript 内で使用される window.location.host を元にサイトの区別を行っている模様。
IE6 だと window.location.host は xn--eckwd4c7cu47r2wf.jp であるが、IE7 とか Firefox とかだと window.location.host が ドメイン名例.jp となっていて、http://ドメイン名例.jp/ で Google Maps API Key を取得しようとしても http://%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e5%90%8d%e4%be%8b.jp/ というサイト向けの Google Maps API Key が発行されてしまい、いずれにしろうまくいかない。
IE7 とか Firefox とかが window.location.host で xn--eckwd4c7cu47r2wf.jp を返してくれれば事は済むと思うのだが、ブラウザの内部的な仕様は1個人ではどうすることも出来ないので、 Google Maps API 側でなんとか対応してもらえないだろうかと思う今日この頃です・・・。
どうにか対応する手段はないでしょうか・・・。