--
--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tag:

02
2009

href="javascript:window.open(~)"とURLエンコードで文字化け

CATEGORYWeb
タイトルどおり。ハマったのでメモ。

たぶん window.open() に限った話じゃないと思うけど、今回それだったのでそれを例に。IE8とFirefox3.5で確認。

javascriptでリンクを書くときに
<a href="javascript:window.open('http://example.com/%e3%83%86%e3%82%b9%e3%83%88')">文字化け例</a>
とかみたいに書けるわけだが、↑のようにここにURLエンコードした文字をいれたところ、受け取り先で文字化けするという現象が発生。
散々HTMLの文字コード変えてみたりいろいろと迷った挙句、↓のように直したところ解消した。
<a href="" onclick="window.open('http://example.com/%e3%83%86%e3%82%b9%e3%83%88');return false;">文字化けしない例</a>
※ リンク先は404のメッセージも文字化けしていますが、問題点はそこではなくアドレスバーのURLです。

href に書くと化ける、onclick で書くと化けない。
window.open() ではなく href や onclick をキーワードに検索してみる。すると、該当する話を発見。

goungoun blog. - getAttribute href、MSIE6が勝手にURLデコードする問題?
MyMemoWiki - HTML javascript:を利用するとデコードされる

原因までは見つからず。formタグは自動でURLエンコードされると思ってたけど、Aタグも何かそういう仕様あるんだっけ?
でも、IEだけじゃなくてFirefoxでも起きたということは、たぶんあるんだろうなぁ。


追記。
Firefox 3.5で改めて↑のリンクをクリックしたら再現せず。
Firefoxでも起きたと思ったのは、単にテストしたときの文字コードか何かがおかしかったのかな・・・(汗
スポンサーサイト

Tag: Web JavaScript

0 Comments

Leave a comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。