2005年11月02日
川俣晶の縁側ソフトウェア技術雑記total 3968 count

ブラウザ間非互換性: Safari2はlocation.hashへの代入で不用の%23を追加する場合がある

Written By: 川俣 晶連絡先

 ヤバイですよ、奥さん。

 Safari2は1つの問題について調べている間に、ぽろぽろと他の問題に出くわします。

 location.hashより取得した値を再びlocation.hashへ代入すると余計な"%23"が追加される場合があります。

検証プログラム §

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

<title>test</title>

</head>

<body>

<input type="button" onclick="location.hash = location.hash + 'A';" 

value="hashにAを追加"></input>

</body>

</html>

 これを表示させ、ボタンをゆっくりと繰り返し押してみます。(素早く押すと受け付けられないことがあるらしい)

 IE, Firefox, Operaでは、これに応じて、アドレス欄の表記が以下のように変化します。

http://……

http://……#A

http://……#AA

http://……#AAA

 しかし、Safari2(412.2)では以下のようになりました。

http://……

http://……#A

http://……#%23AA

http://……#%23%23AAA

 どうも、location.hashから取得した値をそのまま入れると、先頭の#が一般の文字と認識され、%23にエスケープされて#の後ろに追加されてしまうようです。

回避方法 §

 おそらく、location.hashに代入する場合には、常に先頭の#を取り除くように組めばどのWebブラウザでも上手く行くような気がします。(未検証)

感想 §

 疲れた……。1つの問題について調べている間に別の問題が見付かり、それを調べている間に更に別の問題が見付かるSafariっていったい……。

Facebook

トラックバック一覧

2005年11月03日【クロスブラウザ】Safariのlocation.hashFrom: JavaScript++かも日記

ブラウザ間非互換性: Safariのlocation.hash http://mag.autumn.org/Content.modf?id=20051102211029... 続きを読む

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20051102211029
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.