JavaScript中Event.returnValue属性

1.该属性是设置或获取事件的返回值。Event对象的returnValue属性的值一般是true,即脚本处理完自己的工作后由元素处理事件。
通过该属性可以取消事件处理程序中调用函数的默认操作。
现在举个例子说明:
<html>
<head>
<script language="text/javascript">
var charCode=event.keyCode;
if(charCode<48||charCode>75)
{
alert("对不起,你输入的不是数字字符!");
event.returnValue=false;
}
</script>
</head>
<body>
<textarea name="textarea" onKeyPress="return_value()"></textarea>
</body>
</html>
如果没有event.returnValue=false;这句填写的字符不是数字也会在文本框显示。
加上这句,如果不是数字就不会在文本框显示。

代码会执行完,但是事件的操作不会继续下去了。

转载:http://blog.sina.com.cn/s/blog_693062d60100ks1e.html

<think>好的,用户的问题是如何使用window.event.returnValue来禁用默认事件行为。首先,我需要回忆一下相关的JavaScript事件处理知识。 记得在早期的IE浏览器中,确实可以通过设置window.event.returnValue = false来阻止默认行为。比如,禁用右键菜单或者阻止表单提交。但现代浏览器大多遵循DOM标准,使用event.preventDefault()方法。这可能是一个需要注意的兼容性问题。 用户提供的引用内容提到在body标签里用oncontextmenu='return false',或者在JS中设置window.document.oncontextmenu = function(){ return false; }。这些方法都是传统的做法,而用户可能想了解更通用的方法,特别是使用returnValue的方式。 需要确认window.event在非IE浏览器中的可用性。现代浏览器的事件对象是通过参数传递给事件处理函数的,而不是通过window.event。所以直接使用window.event.returnValue可能在Chrome、Firefox等浏览器中无效。 接下来,应该给出两种方法:传统的IE方式和标准的preventDefault(),并建议同时使用两者以确保兼容性。例如,在事件处理函数中检查是否存在preventDefault方法,如果有就调用,否则设置returnValue为false。 还要注意,使用return false在行内事件处理中可能有效,但在通过addEventListener绑定时,需要显式调用preventDefault或者设置returnValue。 另外,用户的问题可能不仅限于右键菜单,还可能涉及其他默认事件,比如链接点击、表单提交等。需要提供一个通用的示例代码,覆盖不同的事件类型和浏览器兼容性处理。 最后,要提醒用户注意浏览器兼容性,推荐使用标准方法,并说明旧方法的局限性。可能还需要提到事件监听的正确方式,比如使用addEventListener而不是直接设置oncontextmenu属性,以提高代码的可维护性。 总结回答的结构:先说明returnValue的使用方法,指出其适用环境,然后提供代码示例,比较不同方法,最后给出兼容性建议和相关问题。</think>要使用`window.event.returnValue`禁用默认事件行为,需结合早期IE浏览器的事件处理方式。以下是具体实现方法: ### 实现步骤 1. **兼容性判断** 在事件处理函数中优先使用`event.preventDefault()`(现代浏览器),同时为兼容旧版IE设置`window.event.returnValue = false`: ```javascript element.onclick = function(event) { event = event || window.event; // 兼容IE if (event.preventDefault) { event.preventDefault(); // 标准方法 } else { event.returnValue = false; // IE5-8 } return false; // 额外保险(行内事件中有效) }; ``` 2. **右键菜单禁用示例** ```javascript document.oncontextmenu = function(e) { e = e || window.event; if (e.preventDefault) e.preventDefault(); else e.returnValue = false; return false; }; ``` ### 方法对比 | 方法 | 适用场景 | 兼容性 | |-----------------------|----------------------|----------------------| | `event.preventDefault()` | 标准DOM事件处理 | 现代浏览器 | | `window.event.returnValue` | 旧版IE事件对象 | IE5-10 | | 行内`return false` | HTML属性绑定事件 | 所有浏览器(部分限制)[^1] | ### 注意事项 1. 在通过`addEventListener`绑定事件时,`return false`不会阻止默认行为,必须显式调用`preventDefault` 2. IE11+已逐步淘汰`window.event`对象,建议优先使用标准事件参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值