正在取消IE11中的JavaScript事件
Cancelling JavaScript events in IE11
我有一些历史代码,它使用event.returnValue = false
来防止CR通过onkeydown
事件在ASP.NET中引起回发:
onkeydown = "if (event.keyCode == 13) {event.returnValue = false; event.cancel = true;}"
我已经将代码移植到我的新开发PC上,上面的代码停止工作,即按下CR在文本框中执行帖子。
我花了很长时间才找到它。我的历史应用程序是所以旧的,它必须在IE11中以兼容模式运行,所以我的旧电脑已经将localhost添加到兼容网站列表中。
我的新电脑没有本地主机,所以我的新应用程序在";"本地";IE11模式。
旁白:我知道有一种不同的方法可以通过简单地返回false来做到这一点:
onkeydown = "return event.keyCode != 13"
我的问题更多的是关于为什么event.returnValue = false
在不处于兼容模式时不能在IE11中工作,即JavaScript事件系统发生了什么变化,导致此代码不再有效?
event.returnValue
是IE专有机制,现在已被弃用。从IE 9前后开始,IE就开始远离其旧的专有API,转而采用web标准。
标准是event.preventDefault
,它将在IE 11上运行。
如果你想覆盖所有的基础,你可以继续在你的代码中包括旧的API,并使用preventDefault
:的特征检测
onkeydown = "if (event.keyCode == 13) {
event.returnValue = false;
event.cancel = true;
if (event.preventDefault) {
event.preventDefault();
}
}"
相关文章:
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 在同一个javascript事件处理程序中调用不同的函数
- Javascript事件;在新选项卡中打开”;
- 存在每个时间元素的javascript事件
- Javascript事件.锚的目标问题
- 带有参数的Javascript事件处理程序
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- firefox中的Javascript事件范围问题
- Firefox中的JavaScript事件参数
- 在动态加载的PHP表单上放置JavaScript事件
- 如何在Javascript事件上从JSNI设置GWTClass字段
- Javascript事件发射器一次处理多个事件
- 在下拉式javascript事件监听器中选择时触发事件
- 在javascript中导入xlsx文件时,如何手动强制javascript事件
- 显示触发的JavaScript事件
- 正在取消IE11中的JavaScript事件
- 页面卸载期间的JavaScript事件循环
- 存在其他参数时访问Javascript事件
- 阻止Javascript事件影响子元素
- 如何在事件处理程序中获取 javascript 事件对象