Включение / отключение HTML-элемента (IFrame) для предотвращения или разрешения вкладок к нему / фокусировки на нем - PullRequest
4 голосов
/ 28 сентября 2010

Существует ли простой способ включить или отключить IFrame, чтобы вывести его из порядка табуляции?

Я создал простую страницу HTML, на которой есть несколько ссылок, которые при нажатии отображают или скрывают связанный IFrame.с помощью ссылки и установите свойство SRC IFrame для одной из форм WordThis моих блогов Wordpress.Таким образом, я могу легко добавить сообщение в любой из блогов с одной страницы.

Все на этой странице работает нормально, как и ожидалось, за исключением поведения клавиши Tab.Все IFrames изначально скрыты и не имеют установленного SRC (например, <iframe src=""></iframe>).Проблема в том, что когда я нажимаю клавишу Tab, вместо перехода от ссылки к ссылке она устанавливает фокус на скрытые (и пустые) кадры между ссылками.

Когда кадр отображается и загружается с помощью формы PressThis, нажимаяВкладка корректно перемещается по полям ввода формы (и всего остального на странице) между ссылками.Однако когда рамка снова скрывается, нажатие клавиши Tab по-прежнему проходит через каждое поле, поэтому переход от ссылки к ссылке с клавиатуры довольно плохой.

Я пытаюсь найти способ переключать IFrame так,что когда он скрыт, нажатие клавиши Tab пропускает его (он удаляется из порядка табуляции), а когда оно отображается, нажатие клавиши Tab позволяет перемещаться между его полями формы.Непосредственно HTML-элементы (кажется, что HTML-элементы не имеют отключенного свойства как части DOM, и при этом не существует отключенного стиля CSS).Самым близким, что я мог найти, были люди, спрашивающие об отключении определенных полей формы.

Есть ли простой способ сделать это?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 28 сентября 2010

Всегда лучше предоставить пример кода того, что вы пытаетесь сделать, таким образом вы получите больше интереса (и ответов).

В любом случае, я думаю, что вы ищете свойство tabindex, вы можете использовать его для указания порядка табуляции элементов или даже удаления элемента из цикла.

Быстрый пример: http://jsfiddle.net/zFXNM/

<a tabindex="1" href="#">Link 1</a><br/>
<iframe tabindex="-1" src=""></iframe><br/>

<a tabindex="2" href="#">Link 1</a><br/>
<iframe tabindex="-1" src=""></iframe><br/>

<a tabindex="3" href="#">Link 1</a><br/>
<iframe tabindex="-1" src=""></iframe><br/>

Значения работают следующим образом:

  • tabindex > 0 = устанавливает порядок табуляции элемента, порядок ASC, поэтому 1 стоит первым
  • tabindex = 0 = порядок табуляции соответствует потоку вкладок документа.
  • tabindex =-1 = удаляет элемент из потока вкладок документа (не может быть вкладок)
1 голос
/ 28 сентября 2010

Чтобы отключить вкладку для элемента, вы можете установить свойство tabindex в iframe на -1.

Например

<iframe src="" tabindex="-1" id="some-iframe"></iframe>

Вот демонстрационная версия , попробуйте использовать вкладки для ввода.

Если вы хотите повторно включить вкладки после того, как вы установили атрибут src, просто установите его обратно в 0 с помощью javascript, браузер должен позаботиться обо всем остальном.

document.getElementById("some-iframe").tabIndex = 0;
...