我最近遇到一个 禁用文本选择的网站,阻止任何人轻松复制和粘贴文本。我有一个小书签,它禁止使用 JavaScript 阻止上下文菜单的类似尝试,我想知道是否可以对文本选择做类似的事情。
function disableSelection(target){
if (typeof target.onselectstart!="undefined") //For IE
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //For Firefox
target.style.MozUserSelect="none"
else //All other route (For Opera)
target.onmousedown=function(){return false}
target.style.cursor = "default"
}
在其他地方调用函数 disableSelection(document.body)
。
我的上下文菜单书签中的解决方案也可能是必要的:
javascript:void(document.onmousedown=null);
void(document.onclick=null);
void(document.oncontextmenu=null)
最后,我 在 StackOverflow 的其他地方 看到也可以使用 CSS:
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
有没有一种方法可以同时解决所有这些问题,并通过我的浏览器结束这种暴政?我如何为所有元素启用 MozUserSelect
/ SelectStart
并设置 CSS 属性?
原文由 Patrick 发布,翻译遵循 CC BY-SA 4.0 许可协议
查看 _Alan Hogan 的启用所有文本选择书签_。小书签的唯一问题是它不处理框架/iframe(这是浏览器安全问题,因此不太可能对其进行处理)。
作为一个额外的好处,它还可以在阻止它的页面上启用鼠标右键单击事件。
创建一个书签(例如,将任何页面的 URL 左侧的图标拖到书签栏),右键单击并选择 Edit ,重命名为有意义的名称,然后在 URL 字段中插入以下代码:
要使小书签代码可读,您可以使用位于 http://subsimple.com/bookmarklets/jsbuilder.htm 的 Bookmarkelt Builder - 只需粘贴缩小的小书签文本并单击格式按钮。