代码之家  ›  专栏  ›  技术社区  ›  Andres

如何在javascript中清除焦点?

  •  117
  • Andres  · 技术社区  · 14 年前

    我知道这不应该那么难,但我在谷歌上找不到答案。

    我想执行一段javascript,它将从它所在的元素中清除焦点,而不提前知道焦点在哪个元素上。它必须在火狐2以及更现代的浏览器上工作。

    有什么好办法吗?

    7 回复  |  直到 5 年前
        1
  •  120
  •   Paul Fisher    7 年前

    答: document.activeElement

    ---编辑----

    技术上: document.activeElement.blur()

    ----编辑2

    function onElementFocused(e)
    {
        if (e && e.target)
            document.activeElement = e.target == document ? null : e.target;
    } 
    
    if (document.addEventListener) 
        document.addEventListener("focus", onElementFocused, true);
    
        2
  •  85
  •   Kevin Reid    14 年前

    .focus() 然后 .blur() 页面上的其他任意内容。因为只有一个元素可以有焦点,所以它被转移到那个元素,然后被移除。

        3
  •  39
  •   pwnzor1337    10 年前
    document.activeElement.blur();
    

    在IE9上工作错误-如果活动元素是文档体,它会模糊整个浏览器窗口。最好检查一下这种情况:

    if (document.activeElement != document.body) document.activeElement.blur();
    
        4
  •  3
  •   plodder    14 年前

    dummeyelem.focus()其中dummeyelem是隐藏对象(例如,具有负zindex)?

        5
  •  1
  •   kennebec    14 年前

    可以调用window.focus();

    但是移动或丢失焦点必然会干扰任何使用tab键浏览页面的人。

    您可以收听键代码13,如果按下tab键,则放弃效果。

        6
  •  -1
  •   Md. Tazbir Ur Rahman Bhuiyan    5 年前

    如果在元素中有一个“活动”类的顶部菜单,则可以使用它:

    $(".menu-header:first").find(".active").focus();
    

    它适用于如下菜单样式:

    <div class="menu-header" data-bind="invisible:isVisible">
                    <ul class="nav navbar-nav navbar-header">
                        <li><a class="nv" href="/Home" id="home-menu"><span><i class="fa fa-home"></i></span>Hjem</a></li>
                        <li><a class="nv active" href="/nb-no/CV" id="cv-menu"><span><i class="fa fa-pencil-square-o"></i></span>CV</a></li>
                        <li><a class="nv" href="/myjobapps" id="app-menu"><span><i class="fa fa-files-o"></i></span>Søknader</a></li>
                        <li><a class="nv" href="/alladverts" id="jobs-menu"><span><i class="fa fa-search"></i></span>Jobber</a></li>
                        <li><a class="nv" href="/Options" id="option-menu"><span><i class="fa fa-ellipsis-h"></i></span>Mer</a></li>
                    </ul>
                </div>
    
        7
  •  -3
  •   bsbak    6 年前

    使用jquery,它只是: $(this).blur();