1

ブラウザーが応答を受信した後、Web ページの DOM を変更しているのは何ですか?

この動作は、使い捨てフォーム トークンを保持する非表示の入力要素の値に見られます。

ブラウザで「ソースを表示」すると、サーバーによって書き出された正しい値が表示されます。フォームを送信したり、DOM の現在の状態を表示したり、要素をテキスト入力に変更したりすると、別の文字列が表示されます。そのため、サーバーにポストバックするときに入力が保持する値は、サーバーが最初に送信した値とは異なります。

JavaScript を無効にしても問題は解決しません。要素に読み取り専用属性を追加しても、どちらも役に立ちませんでした。

新しい情報: 私はこれをもう少しいじりました。信じられないかもしれませんが、Firefox で画像をオフにすると、この問題は解消されます。

なぜこれが起こるのでしょうか?

4

4 に答える 4

1

ブラウザーに「フォーム データの保存」機能がある場合、以前に送信された値をデータに事前入力している可能性があります。

(一般的なブラウザは隠しフィールドにデータを入力しないほど賢いと思いますが、それは私が提案できる原因の 1 つです...)

于 2008-12-05T02:28:49.050 に答える
1

readonly="readonly"を field タグに入れ、 autocomplete="off"を入れて運が良いかもしれません。

ブラウザのオートコンプリートがそれを行っているかどうかはわかりませんが、もっともらしいです.テストブラウザでオートコンプリートを無効にしてみて、それが何かを変えるかどうかを確認することもできます.

于 2008-12-05T06:43:44.573 に答える
0

「フォームを送信すると、DOM の現在の状態が表示される」とはどういう意味ですか?

フォームを送信すると、サーバーにリクエストが送信されますか? サーバーから返された結果のページのDOMの状態について話しているのですか?

クライアント側のスクリプトが含まれていない場合、DOM がクライアント側で変更されることは実際にはありえません。

一方、サーバーに送信してまったく新しい DOM が返された場合は、サーバーがそれを変更したことになります。

于 2008-12-05T06:26:27.867 に答える