私はFirefoxのパスワードマネージャと連携し解決策を見つけました。フォームを動的にロードする理由に応じて、私のソリューションはあなたに役立つかもしれません。 (後で詳しくはこちら)
最初に、同じメソッドとアクションを使用し、同じ名前のフィールドを含むページに非表示のフォーム(「表示:なし」のインラインスタイルを使用)を配置します。
<div id="container"></div>
<div id="fake-form" style="display: none">
<form action="index.php" method="post">
<input type="text" name='nombre' class='nombre'/>
<input type="password" name='pass' class='pass' />
</form>
</div>
次に、あなたのJavaScriptで、実際のフォームの内容がロードされた後、偽のフォームから値をコピーして、それらを置く:あなたは最終的に、実際のフォームが含まれていますdivの下にこれを置くことができます実際の一つに:
あなたが動的に実際のフォームをロードする前に、ページ上のフォームを置くためにこれだけの努力によってつもりなら、なぜちょうどその最後のステップを削除していない、と述べた
<script type="text/javascript">
$(function() {
$("#container").load("/path/file.php?what=login_form", function() {
var fakeForm = $("#fake-form");
$("#nombre").val(fakeForm.find(".nombre").val());
$("#pass").val(fakeForm.find(".pass").val());
});
});
</script>
最初のページにフォーム? :-)おそらくあなたはこれを行うための正当な理由があります。おそらく、サーバーからのフォームに固有のスタイリング情報、またはフィールドの横にある動的なエラーメッセージ、またはi18nフィールド名がありますか?
ただし、サーバーから引き出しているフォームにユーザーごとに異なるアクションがある場合は、隠されたフォームを作成するときにアクションを事前に知っておく必要があるため、私のトリックは機能しません。
もしそうなら、あなたは逆に私のトリックを試して、サーバーからロードして偽のフォームをユーザーに表示する「リアルフォーム」を隠すことができます。偽のフォームは存在しないURLに投稿することができますが、JavaScriptを使用して「偽のフォーム」の受信を傍受し、ユーザー名とパスワードを不可視の「実際のフォーム」にコピーし、実際のフォームで送信し、元のフォームの送信が行われないようにするにはfalseを返します。
更新:パスワードマネージャは、ほぼ間違いなくあなたが実際にデータを提出し、最終的なURLでユーザ名とパスワードを関連付けるので、もう少しそれについて考えた後、私は、私の第二の溶液が働くだろうとは思いません最初のアクションURLではなく、最初にと書かれたのふりをするだけのフォームになります。とにかく、うまくいけば私の最初の解決策は、あなたがやっていることにふさわしいでしょう。
''/path/file.php?what = login_form'' HTML出力を投稿できますか? –
これは標準的な動作です。私たちが動的に生成したログインフォームを使用している理由は、ユーザがpwを保存することができないようにするためです。 –
申し訳ありませんが、あなたは正しいですか?変更を編集する –