javascript – Problem mit dem kontinuierlich ausgelösten Textfeld-Onblur-Ereignis
漂亮男人
漂亮男人 2017-05-19 10:13:27
0
2
1046

Text-Tag onblur="alert()"
Alert() wird ausgelöst, wenn das Textfeld den Cursor verliert
Aber wenn die Maus diesen Text auswählt und dann die Maus das gesamte Browserfenster verlässt (z. B. beim Klicken auf den Desktop) , das Ereignis „alert()“ wird ausgelöst.
Jetzt kommt das Problem:
Nachdem Sie die Maus zum Browser zurückgebracht und auf die Popup-Schaltfläche „OK“ geklickt haben, wird das Popup-Fenster weiterhin angezeigt...
Was sollte Das tue ich?

漂亮男人
漂亮男人

Antworte allen(2)
刘奇

不会出现这个情况的,贴出你的代码。


补充

我能回答就肯定试过的啦下面代码就没有问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input type="text" onblur="alert();">
</body>
</html>

已经测试IE11 、 Firefox 、Chrome


补充

所描述的情况确实存在,想了下原因:

切回去后窗口失去了焦点,再回来的时候,文本框又自动获取了焦点 所以一直继续,从而不断触发。

这种问题实际在使用的时候出现情况应该比较少。 一种解决方案是在窗口失去焦点的时候让文本框也失去焦点如下:

已测试问题解决

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input type="text" onblur="alert();">
    <script>
        window.onblur=function(){
            document.getElementsByTagName('input')[0].blur();
        }
    </script>
</body>
</html>
黄舟

刚刚试了下,确实有这个现象,但是把alert改成其他的(比如console.log)就不会出现反复触发 blur 的情况,一般情况下应该也不会用到alert,所以这个问题应该也不会有很大影响。至于为什么出现这种情况,我也不清楚~~

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage