フォームのあるiframeを含むサイトにページがあります。これを変更することはできませんが、親ページとiframeのページで実行されるすべてのJSを完全に制御できます。iframe内のフォーム要素間をタブで移動できないのはなぜですか?
私の問題は、iframeのドキュメントに焦点を当てたフォームフィールドがある場合、次のフィールドにタブすると、フォームの次のフィールドではなくブラウザのアドレスバーにまっすぐにカーソルが送られることです。各フィールドのtabindexesを設定しても効果はありません。
ブラウザはiframe自体をページ内の要素の1つとして扱っていますが、タブイベントをキャプチャしてフォーカスをiframe内部に保持する方法があるかどうかは疑問ですその子要素を持つ。
以前にこの問題に遭遇したことがありますか?
それはあなたを助けることないが、レイアウトのようなものです:
+-------------------------------------------+
| Parent page |
| +-------------------------------+ |
| N | iframe | |
| a | | |
| v | Has about 50 fields that I'd | |
| i | like to be able to tab between| |
| g | | |
| a | But I can't! Help! | |
| t | | |
| i +-------------------------------+ |
| o |
| n |
+-------------------------------------------+
ひとつのアイデアがしようとするとキャプチャのiframe内のKeyDownイベントを、タブまたはシフト+タブをチェックし、その後再び焦点を合わせることでしたiframeが、フォーカスを失う前にどこのフィールドを知っているかという問題があります。フォームフィールドにJSとtabindex属性を使用して、次のフィールドを動的にフォーカスする方法はありますか?私は次のベンチャーどこ多分それはだ...
更新:おそらく私が欠けていることにもシンプルなものがあります。たとえば、http://www.studentloan.comのログインボックスはiframeであり、これらのフィールドの間にタブを置くことはできます。多分私のJSの他の何かが問題の原因です。
アップデート2:私は、スタンドアロンのページとしてブラウザにちょうどiframeのドキュメントをロードしようと、私はまだタブできません。私はそれがドキュメントの焦点を失う原因となっているJSのどこかでやっていることだと思う。見つけたら私の解決策を掲載します。
アップデート3:
問題は、AjaxのコントロールTookitのModalPopupExtenderによって引き起こされます。私は、Webサービスを呼び出した後にローディングメッセージとして1つを使用しています。コールバックメソッドが呼び出されると非表示になります。
モーダルポップアップが初めて表示されて非表示になるまで、フィールド間を移動できます。その後、そのフォームは決してその焦点を維持することはできません。私は理由を調査しており、理由を知ることができれば回答を投稿します。
ありがとうございます!
あなたは正確です。私は、うまく動作するMPEの束を持って、ちょうど1つの問題のあるものがあった(それはフォームフィールドを持っていなかった - それは問題の一部だったのだろうか)。これを投稿するために戻ってきてくれてありがとう! –