禁用div中的复制?

时间:2012-05-27 20:44:17

标签: jquery html css

我想知道是否有办法禁用从div复制文本?

我去过网站,如果我试图突出或复制一些文字,我无法做到。我想知道是否有人知道我将如何实现这一目标?

<div id="description">However, this valorous visitation of a by-gone vexation,
 stands vivified and has vowed to vanquish these venal and virulent vermin
 vanguarding vice and vouchsafing the violently vicious and voracious violation
 of volition. </div>

3 个答案:

答案 0 :(得分:12)

使用CSS只需使用用户选择:

-moz-user-select: none;  
-webkit-user-select: none;  
-ms-user-select: none;  
-o-user-select: none;  
user-select: none;

适用于Firefox,Chrome和Safari,IE10及更高版本,但不适用于Opera。

这只会阻止用户选择文本,但这会阻止他们复制文本。对按钮上的文字也很好。

在较旧的IE和Opera中,您可以使用以下方法将其设置为无法选择:

var elem = document.getElementById("yourElement");
elem.unselectable = "on"; // For IE and Opera
在JS中

,或者只是添加unselectable属性并将其设置为开启。

以下是一个示例:http://jsfiddle.net/B9yYt/

答案 1 :(得分:1)

您可以在内容之上添加div,如下所示:

<html>
<head>
<style>
#content{
    z-index: 0;
    background: grey;
}

#overlay{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}

</style>
</head>
<body>

    <div id="content">
        <p>Can't touch this</p>
    </div>

    <div id="overlay">

    </div>

</body>
</html>

答案 2 :(得分:0)

这不是JavaScript - 但您可以通过使用CSS来“禁止”选择某些内容。

::-moz-selection { background: #000000; color: #ffffff; text-shadow: none; }
::selection { background: #000000; color: #ffffff; text-shadow: none; }

请注意,这不是跨浏览器兼容的。