読者です 読者をやめる 読者になる 読者になる

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的にどうなんだろう?