如何防止 javascript 警报更改活动窗口
How to prevent the javascript Alert to change the active window
我在 asp.net 页面中使用java脚本文件进行计算。如果用户在某些文本框中写入了错误的值,我会使用简单的 ALert 向他们显示一条消息:
if (parseFloat(ctrltotal.value) < totalEX) {
alert(" Error message ");
return false;
}
我的问题是,当出现警报消息时,活动窗口从当前活动窗口(我的浏览器)切换到另一个窗口(系统上任何其他打开的窗口)。 有什么理由可以防止这种情况吗?
谢谢。
您可以在单击按钮之前保存活动元素,并在警告框消失后重新聚焦该元素。
例:
<div>
<div> Input A: <input type="text" /> </div>
<div> Input B: <input type="text" /> </div>
<div> Input C: <input type="text" /> </div>
<div> Input D: <input type="text" /> </div>
<div> Input E: <input type="text" /> </div>
<div> Input F: <input type="text" /> </div>
</div>
<button type="button" id="btn">Click</button>
您可以使用按钮on mouse down
事件并获取活动文档元素(单击事件为时已晚,因为单击按钮会"窃取"活动元素)并在警告框后重新聚焦它。
var focused = null;
document.getElementById('btn').onmousedown = function(){
focused = document.activeElement;
}
document.getElementById('btn').onclick = function(){
alert('Hello');
if (focused != null) focused.focus();
}
JSFIDDLE:
http://jsfiddle.net/8bvyf16q/
相关文章:
- 从chrome扩展打开的窗口捕获活动面板中的屏幕
- AJAX查询处于活动状态时禁用窗口大小调整
- 用于从剪贴板中的表自动填充活动浏览器窗口中的字段的脚本
- 如何防止 javascript 警报更改活动窗口
- 如何在Github电子原子中禁用或使浏览器窗口处于非活动状态
- 打开打印窗口处于活动状态的 PDF 链接
- 弹出窗口处于活动状态时禁用滚动
- 铬插入符号在非活动窗口中不可见 - 不适合拖放
- 仅在一个窗口中播放声音,该窗口使用javascript(可能是jquery)处于活动状态(在一个网站内)
- 跟踪由 window.open() 方法打开的窗口上的用户活动
- 在Chrome扩展弹出窗口中保持Flash元素处于活动状态
- 是否有任何方法可以检测IE8中该窗口当前处于活动状态
- Chrome扩展:浏览器操作弹出窗口如何与活动选项卡通信
- 当浏览器选项卡/窗口处于活动状态时进行检测
- 传单禁用缩放到标记以及如何保持弹出窗口始终处于活动状态
- 如何在打开另一个弹出窗口时隐藏活动的弹出窗口
- 检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]
- 事件是否会触发非“;活动的”;窗口
- Jquery动画,设置间隔和非活动窗口问题
- Browsersync仅在浏览器为活动窗口时刷新