IE 11问题 - 在最小化当前窗口后,Alert()弹出窗口会显示

5
我有一个简单的HTML页面,其中包含一个文本字段,当文本字段失去焦点时显示弹出消息。每当用户将焦点放在文本字段上并在窗口内任何位置单击时,就会在最小化当前窗口后显示警报消息,即警报消息的背景不会像最小化的窗口一样显示当前窗口。只有在点击警报消息的确定按钮后,窗口才会重新显示。在文本字段中使用Tab键时不会发生此问题。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
</head>
<body>
<input name="txtFromDate" tabindex="6" id="txtFromDate" style="width: 75px;"  onblur="alert('Clicked');" type="text" maxlength="10" value="04/11/2017">

</body>
</html>

存在此问题的IE11版本:11.0.9600.16384(Windows Server 2012 R2),11.0.9600.18378(Windows Server 2012 R2),11.0.9600.18618(Windows 8)。

未出现此问题的IE11版本:11.0.960.18617(安装在Windows 7上)。

请问是否有解决此问题的方法?

注意:在IE8中工作正常。

你应该在表单的form.submit(event)处理程序或onchange、oninput、onkeypress、onkeydown事件中验证表单字段,并在document的onbeforeunload事件中进行验证。你的示例代码没有显示你想要实现的逻辑和流程。听起来你想提示用户在关闭标签/窗口或离开表单页面前保存他们的表单数据。 - Rob Parsons
这只是一个实际应用程序的复制样本代码。我们试图实现的是,如果通过onblur事件输入了错误日期(即用户将焦点从文本字段移开),则验证并显示警报消息。问题是:警报消息被显示,但不在同一个窗口中,它会通过最小化当前窗口来显示。 - Subramanian R
1个回答

3

onblur="(this!=document.activeElement)&&setTimeout(function(){alert('Clicked')},0)"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接