これが既存のバグかどうかはわかりませんが、私が取り組んでいる Web アプリケーションをデバッグした後、Safari 5 で奇妙な動作を発見しました。シナリオは次のとおりです。
ページ A ---- HTTP POST ----> ページ B ---- HTTP POST ----> ページ C
ページ A:
<body onload="document.forms[0].submit()">
<form method="post" action="pageB.php">
<input type="hidden" name="display" value="ABC" />
</form>
</body>
ページ B:
<body onload="document.forms[0].submit()">
<form method="post" action="pageC.php">
<input type="hidden" name="display" value="123" />
<input type="hidden" name="extra" value="XXX" />
</form>
</body>
ページ C:
<body>
<?php
print_r($_REQUEST);
?>
</body>
これまでにテストしたすべてのブラウザーのうち、Safari 5 (Mac バージョン) のみが name="display" の値 "ABC" を表示し、フィールド "extra" の値 "XXX" をまだ確認できます。他のすべてのブラウザー (Safari 3、4 を含む) は、正しい値である値「123」を表示します。
何らかの理由で、ページ A とページ B を使用してフォームを送信する必要があります。この状態で、Safari 5 の回避策は何ですか? (ページ A からページ C に値を転送するような並べ替えではなく、ページ B で正しい値を送信するには、123 にする必要があります)
どうもありがとう!
- Edit1: Mac OS (Snow Leopard、Lion) Safari 5 でのみ発生
- Edit2:例をより明確にする