我正在使用 jquery 1.6 并想在我的 iframe 中执行此代码:
$(document).bind('keydown', function (e) {
if (e.which == 9) {
var tabbie = $(e.target).attr('tabIndex');
if (tabbie) {
var el = $("*[tabIndex='" + (parseInt(tabbie) + 1) + "'");
if (el.length) {
// do standard action
}
else {
e.preventDefault();
window.top.focus();
return false;
}
}
}
});
如您所见,它应该做什么:在 tab-keypress 上,查看是否存在具有下一个 tabindex 值的元素。如果是这样,一切都很好,让浏览器去吧。如果没有,则将焦点放在 iframe 的父级。
这在 IE8 中有效,但在 chrome/FF 中则无效:即使 html 有 tabindexes,您也不能使用任何选项卡:
<div class="row fl-controls-left">
<input id="username" name="username" tabindex="1" type="text" value="" size="25" autocomplete="false"/>
</div>
<div class="row fl-controls-left last">
<input id="password" name="password" tabindex="2" type="password" value="" size="25" autocomplete="off"/>
</div>
<div class="actions rounded-bottom">
<a href="javascript:void(window.top.location.href = 'http://localhost/')" tabindex="4">Forgot?</a>
<div class="row btn-row">
<input name="submit" value="Aanmelden" tabindex="3" type="submit" />
<input name="reset" value="leegmaken" tabindex="1000" type="reset" />
</div>
</div>
有谁知道为什么?
(为什么我想要这段代码?回答我的另一个问题Tabindex 跳过 iframe 但不是里面的内容)
干杯!