簡體   English   中英

為什么我無法在iframe中的表單元素之間切換?

[英]Why can't I tab between form elements within an iframe?

我在一個站點中有一個頁面,其中包含帶有表單的iframe。 我無法更改此設置,但可以完全控制在父頁面和iframe頁面中運行的所有JS。

我的問題是,當我將一個表單字段集中在iframe的文檔中時,跳至下一個字段會將光標直接移到瀏覽器的地址欄,而不是表單中的下一個字段。 在每個字段上設置tabindexes都無濟於事。

瀏覽器將整個iframe本身視為頁面中的元素之一(應該如此),但是我想知道是否存在一種方法來捕獲選項卡事件並迫使焦點停留在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事件,檢查tab或shift + tab,然后重新調整iframe的聚焦,但是問題是在失去焦點之前要知道我所在的字段。 有沒有一種方法可以在表單字段上使用JS和tabindex屬性動態關注下一個字段? 也許那是我下一步的冒險...

更新:也許我缺少一些更簡單的東西。 例如, http://www.studentloan.com上的登錄框是iframe,我可以在這些字段之間切換。 也許我的JS中有其他原因導致了問題。

更新2:我嘗試僅將iframe文檔作為獨立頁面加載到瀏覽器中,但仍然無法打開標簽。 我認為這是我在JS中其他地方所做的事情,這導致文檔失去焦點。 找到解決方案后,我會發布解決方案。

更新3:

該問題是由Ajax控件Tookit的ModalPopupExtender引起的。 調用Web服務后,我將其中一個用作加載消息。 當觸發回調方法時,它將被隱藏。

我可以在字段之間切換,直到第一次顯示和隱藏“模態”彈出窗口。 之后,表單永遠無法保持其焦點。 我正在調查原因,如果可以找出原因,將發布答案。

謝謝!

我和你幾乎有同樣的問題。 經過大量時間尋找解決方案后,我找到了這個網站,在這里我可以找到導致此問題的原因:modalpopupextender。 一旦我知道真正的問題是什么,就很容易找到解決方案。 在這里是: http : //forums.asp.net/t/1191142.aspx

我希望它能像您對我一樣幫助您理解此問題。

我想象使用ajax是不可能的嗎?

如果不是,那么您就沒有iframe制表問題,因為您的表單是當前頁面的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM