8

我有一个输入,在某些时候恰好有焦点。如果用户点击页面的“背景”,输入就会失去焦点。我试图用下面的代码模拟背景上的点击,但这不起作用(你会注意到输入仍然有焦点)。关于如何编写模拟点击页面“背景”的代码的任何建议?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo/yahoo-min.js" ></script>
        <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/event/event-min.js" ></script>
        <script type="text/javascript">
            YAHOO.util.Event.onDOMReady(function() {
                document.getElementById("input").focus();    
                document.getElementById("main").focus();    
            });
        </script>
    </head>
    <body>
        <div id="main">
            <form action="/">
                <p>
                    <input type="text" id="input"/>
                </p>
            </form>
        </div>
    </body>
</html>
4

3 回答 3

18

我想使用blur()可以解决问题:

<script type="text/javascript">
    YAHOO.util.Event.onDOMReady(function() {
        document.getElementById("input").focus();    
        document.getElementById("input").blur();    
    });
</script>
于 2008-10-21T01:29:52.383 回答
2

尝试使用blur事件。如果您使用的是 jQuery,则有一个方法可以调用 DOM 对象来引发此事件。该blur()方法也应该在没有 jQuery 的情况下工作。

http://docs.jquery.com/Events/blur

于 2008-10-21T01:30:27.563 回答
0

你的想法是对的,但是有一个小问题。

document.getElementById("main").focus();

<div id="main">

如您的代码所示,实际上 div HTMLElement 没有焦点方法。

因此您可以调用具有焦点方法的其他元素或调用blur()输入元素

于 2020-11-20T07:37:34.793 回答