6

我想知道是否有办法禁用从 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>
4

3 回答 3

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属性并将其设置为 on。

这是一个例子:http: //jsfiddle.net/B9yYt/

于 2012-05-27T21:02:04.163 回答
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>
于 2012-05-27T20:57:22.447 回答
0

它不是 JavaScript - 但您可以使用 CSS 使某些东西“看起来”无法选择。

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

请记住,这不是跨浏览器兼容的。

于 2012-05-27T20:51:56.093 回答