Location時にフラグメント識別子を付けられるのか?
Location時にhttpから始まるフルパスで書かなければならないのは有名な話。
では、「#XXX」のフラグメント識別子を付けた場合の挙動はどうなるのか。
index.html
<html> <head> </head> <body> <a href="a.php">a.php</a><br> <a href="b.php#hoge">b.php</a> </body> </html>
a.php
<?php header("Location: http://example.com/b.html#hoge"); ?>
b.html
<html> <head> </head> <body> hoge<br> hoge<br> ...繰り返し <a name="hoge" id="hoge">name_hoge</a><br> hoge<br> hoge<br> hoge<br> ...繰り返し </body> </html>
実際の結果。
- DoCoMo N504i OK
- DoCoMo N700i 遷移するもののページトップ
- DoCoMo P903i 遷移するもののページトップ
- au W31S 404の端末側のダイアログエラー<ひどい・・・
- SoftBank 904T 遷移するもののページトップ
- SoftBank 804SS 遷移するもののページトップ
意外なことにN504iだけ意図した動きになった。
このLocationにRFC的にどうなんだろう?