[38] この属性は、 Unforgeable
です >>12。
[16] location.hash
の取得器は、次のようにしなければなりません
>>12。
[29] location.hash
の設定器は、次のようにしなければなりません
>>12。
[22] location.hash = ""
は、素片識別子を除去するのでなく、
空文字列に設定します。
[1]
location.hash
, Gecko では百分率符号化
(URI符号化) が復号されていて、 WinIE
では復号されていないという罠。 (hash
以外も非互換な悪寒。)
回避するには、 location.href
を使うがよろし。
function getFragment (uri) { var fstart = uri.indexOf ('#'); if (fstart == -1) return null; return decodeURI (uri.substr (fstart + 1)); // 百分率符号化したままがよいなら // return uri.substr (fstart + 1); } var fragment = getFragment (location.href);
正規表現でさらりとこなす例
var fragment = decodeURI (location.href.replace (/^.*#/, "")); // 百分率符号化したままがよいなら // var fragment = location.href.replace (/^.*#/, "");
[41] >>2
location.hash
(素片識別子)
にセッション情報を保存しようという試み。
同じことを考えてる人がいたとは。
[42] 最速インターフェース研究会 :: [Ajax] location.hashを使ったセッション復元, http://la.ma.la/blog/diary_200502270128.htm
[3] Merge and Context Ids http://www.helpware.net/htmlhelp/how_to_merge_ctx2.htm
HTML Help 内の redirect に素片識別子を使うという話。 (名無しさん)
[4] web拍手登録版を加工・改造・実験・検証 http://web1.nazca.co.jp/hp/macde/commonmailform/webclap.html#gratitude2 (2004年9月付け)
利用者の入力に対する反応 (頁内容の変化) をスクリプトと素片識別子により行っています。 (名無しさん [sage])
[5]
はじめの #
: 素片識別子の前に来る区切子の #
は、 hash
の取得では
(元の URI にあれば) 常につきますが、
値の設定ではなくてもよいようです。
(名無しさん)
[6] URI 符号化: URI 全体として Gecko は必要に応じて (URI で使えない文字があれば) 百分率符号化し、 WinIE は必要であっても放置するようです。
hash
で取得できる値は
Gecko では UTF-8 として復号された状態、
WinIE では百分率符号化 (されていれば) されたままの状態です。
(名無しさん)
[7]
この属性が存在する物体:
この属性は DOM水準0 ですが、
location
物体のみならず、
href
属性や
src
属性がある要素の
DOM 属性として
(他の location
系属性と共に) 存在しています。
(名無しさん)
[8] 値の設定による移動: 値を設定すると、 他の状況で URI が指定された場合同様に新しい素片識別子で識別される部分要素まで scroll するなりなんなりしようとします。 (名無しさん [sage])
[9]
値の自動的な変化: 頁内リンクの移動や
などの設定で URI が変化すると、
自動的に location
.href
の値も更新されます。
(名無しさん [sage])location
.hash
[10]
>>6 より、 Gecko でも WinIE でも
hash
が構文的に正しい素片識別子になっていることは期待できません。
>>1 のように href
から採るのが安全です。ただし
>>6 にあるように WinIE ではこちらも
URI として正しいことが期待できません。
(名無しさん)
[11] Bug 135309 - location.hash should not be unescaped https://bugzilla.mozilla.org/show_bug.cgi?id=135309
[13]
Link Fingerprints (2007-07-03 07:20:54 +09:00
版) https://people.mozilla.com/~edilee/draft-lee-uri-linkfingerprints-00.txt
(名無しさん 2007-07-24 14:22:07 +00:00)
[19] Bug 377245 – [SoC] Link Fingerprints ( 版) https://bugzilla.mozilla.org/show_bug.cgi?id=377245
[20] 1093611 – AnchorElement.hash should be the encoded version of the href attribute's fragment ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=1093611
[34] Merge effective script origin into origin · whatwg/html@8a843f2 ( 版) https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275
[40] location.hash = "" should result in a fragment ( (annevk著, )) https://github.com/whatwg/html/commit/c63078741df8ae8c4657dc068d5879fb3472dee6
[32] Remove javascript URL case from <a>/<area>/Location hash setter (annevk著, ) https://github.com/whatwg/html/commit/deea9fba916cb6e66c7dcfc57442cf25ac0441a1
[31] Remove javascript URL special case from the API (annevk著, ) https://github.com/whatwg/url/commit/4bf85a08da18ef367e093426abef776d59e8fb7b
javascript:
になる場合があるのかは謎です。