JavaScriptでのリクエストURLの作成とFirefoxの罠

グラフにハイパーリンクを設定し、URLを設定してサーバにリクエストを送信できるようにした。

サーバ側も仮で作って、動作を確認するところまではできた。

そこで気になったのが、当然といえば当然なのであるが、送信するパラメータが、アーティスト名や曲名になるので、そのまま送信していいわけではなさそうである。

日本語のものもあるし、スペースはもちろん、アポストロフィやクオートが含まれる曲名もある。英字タイトルなら半角スペースは当然混じる。

今回はパラメータ単位で処理しているので、encodeURIComponent()を使えばいいということは少し調べてわかった。が、これを追加して、リンクにマウスカーソルをのせても、実際にリンクにアクセスした時のURLも未処理の時と何も変わらない。

と、これがFirefoxの仕様だと思い出した。Wikipediaの日本語サイトの日本語項目にアクセスすれば、URL表示は日本語のまま、リンク先も日本語のまま。そういうものだった。他のブラウザでのテストはしていないが。

Firefoxの開発ツールで、JavaScriptの該当行にブレークポイントを設定し、変数の内容を確認すると、きちんと日本語や半角スペースが処理されているのが確認できた。問題なさそうである。

便利なような、不便なような、使い分けたいこの仕様、と思った。

コメント