2

我正在使用 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 但不是里面的内容

干杯!

4

0 回答 0