« 広めたい情報を効率よくリンク(タイトルを部分引用付きでリンク作成するブックマークレット) | トップページ | SafariでブックマークレットでDOMに出力すると文字化け »

2011年3月28日 (月曜日)

Safariのlocation.hrefで文字化け

 JavaScriptでツールを作成中。複数のブラウザで動作テスト。Safariだけおかしな状況になる。

 問題が出るのはlocation.href。

 Just Metal, Just Baroque.: Safari/Chrome Extension を作るときは location.href でなく document.URL

例えば 2 バイト文字が入っている場合、location.href では Safari と Chrome では異なる結果を返してしまう。

 同じWebKitでも2者で異なる結果となる。ということで、上記エントリーで紹介されているのが、

document.URL であれば双方ともエンコードされた値となるので、Safari/Chrome 共に同じソースでいける。
 という方法。なるほど。ありがとうございます。

 はてなブックマークボタンのソース(http://b.st-hatena.com/js/bookmark_button.js)を見ると同様の問題への対処がなされていることを発見。

var url = location.href;
/* Safari は location.href でパス中の URI エスケープを
* デコードしてしまうので、document.URL も調べてみる
*/
if (url.length < document.URL.length)
url = document.URL;
 とある。長さを見て判別、ということをしているわけだ。

 ということで、今後使うことになるのでメモ。

 タイトルが

 Sagariのlocation.hrefで文字化け

 になってた。「サガリ」ってなんだよ! ということで修正。恥ずかしい。

【ハラミ・サガリ】北海道産限定厳選国産牛ハラミ・サガリ 1kg焼肉福袋!【はらみ・さがり】
【韓国風☆タレ漬けハラミ】150g×4パックセット計600g焼肉店で大ブレイクの(はらみ)【はしっこ】【端っこ】【47%OFF】【ハラミ・はらみ・さがり・サガリ】
posted with look!!


|

« 広めたい情報を効率よくリンク(タイトルを部分引用付きでリンク作成するブックマークレット) | トップページ | SafariでブックマークレットでDOMに出力すると文字化け »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/51237272

この記事へのトラックバック一覧です: Safariのlocation.hrefで文字化け:

« 広めたい情報を効率よくリンク(タイトルを部分引用付きでリンク作成するブックマークレット) | トップページ | SafariでブックマークレットでDOMに出力すると文字化け »