-moz-user-select与onselectstart 禁止选择文字

本文介绍如何通过JavaScript及CSS防止用户在网页上选中特定区域或整个页面的文字内容,包括IE、Firefox和Chrome等浏览器的兼容性解决方案。

[转]
今天无意中注意到QQ、Hi的密码输入框不能用鼠标选择后一次性删除,只能一个一个的删除,然后,就想js中怎么实现这种效果。
       上网一找,还不少,但是我测试了很多, 发现并不完美,还是浏览器在作怪,一种方式似乎只能满足一种浏览器

       onselectstart="return false;",能够满足IE下的效果,当只针对某一个区域的时候,就把该段语句放在某一个区域中。比如:<div onselectstart="return false;" >********</div>;假如 需要把整个文档都设定不能选择,就直接在body中设定onselectstart="return false;"或者是在Javascript中使用:document.onselectstart=function(){return false;}

       style="-moz-user-select:none;",能够满足firefox下的效果,由于onselectstart="return false;"不能在firefox中产生希望的效果,所 以只能用css的方式来实现。当然和前面一样,当需要整个文档都达到这样的效果时,直接把body的样式设置为:-moz-user-select:none;。

       最后我不得不说一下google的chrome浏览器,当在input中使用这 两种方式的时候,都不能达到鼠标不能选择的效果,我至今没找到好的办法来解决

这个 是兼容大部分浏览器的测试代码:

<!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>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>测试</title>

</head>

<body>

<div onselectstart="return false;" style="-moz-user-select:none;" >你选不了我</div>

</body>

</html>





转载于:https://www.cnblogs.com/yezhenhan/archive/2010/12/08/1924311.html

### 设置 `oncontextmenu` 事件的原理 `oncontextmenu` 事件会在用户试图打开上下文菜单时触发,而上下文菜单通常是通过鼠标右键点击触发的,在复制文字时,很多人会通过右键菜单选择“复制”选项。通过设置 `oncontextmenu` 事件并返回 `false`,可以阻止上下文菜单的默认显示行为,从而在一定程度上防止用户通过右键菜单进行复制操作。示例代码如下: ```html <!DOCTYPE html> <html> <body> <p oncontextmenu="return false;">这段文字无法通过右键菜单复制。</p> </body> </html> ``` ### 设置 `ondragstart` 事件的原理 `ondragstart` 事件在用户开始拖动元素时触发。在网页中,用户可能会通过拖动文本来进行选择和复制操作。通过设置 `ondragstart` 事件并返回 `false`,可以阻止元素的拖动操作,进而防止用户通过拖动文本的方式来选择和复制内容。示例代码如下: ```html <!DOCTYPE html> <html> <body> <p ondragstart="return false;">这段文字无法被拖动选择。</p> </body> </html> ``` ### 设置 `onselectstart` 事件的原理 `onselectstart` 事件在用户开始选择元素中的文本时触发。它是专门针对文本选择操作的事件。当设置 `onselectstart` 事件并返回 `false` 时,就可以阻止用户开始选择文本,这样用户就无法通过鼠标拖动或者双击等方式来选择文本,也就无法进行复制等截取操作了。示例代码如下: ```html <!DOCTYPE html> <html> <body> <p onselectstart="return false;">这段文字无法被选择。</p> </body> </html> ``` ### CSS `user-select` 属性的原理 `user-select` 属性用于控制用户是否可以选择元素中的文本。它有几个不同的值,常见的有 `none`、`text`、`all` 等。当将 `user-select` 属性设置为 `none` 时,浏览器会阻止用户选择该元素内的文本。这是从 CSS 层面直接控制文本选择的能力, JavaScript 事件不同,它是一种声明式的方式,直接告诉浏览器该元素的文本不允许被选择。示例代码如下: ```html <!DOCTYPE html> <html> <head> <style> p { user-select: none; } </style> </head> <body> <p>这段文字无法被选择。</p> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值