javascript - 该网站如何禁用内容选择?

标签 javascript html css web-scraping copy-paste

我发现了一个有趣的网站,它使用神秘的技术禁止复制网页内容。

首先,它禁用鼠标右键单击。这可以通过禁用浏览器的 javascript 来克服。

但是,即使禁用了javascript,网页内容仍然无法选择。我查看了网页的 CSS,但找不到任何线索。

它是如何实现禁止内容复制的功能的?

最佳答案

CSS 中有一个属性叫做user-select可以用来防止用户突出显示文本。

通常这用于您想要与之交互的按钮或对象(如点击和拖动)。

还有一个jQuery UI方法disableSelection它会做类似的事情,你可以看到它在整个 UI API 中被使用

注意:disableSelection 现已弃用,因为 user-select 可用

你可以看到你链接的网站在 html 标签上有 CSS 属性,阻止了它在整个网站范围内


更新

我查看了他们的代码,发现他们还有多个层来防止用户选择,主要是在 Javascript 中。有关它们如何阻止选择的几个示例,请参见下面的 fiddle 。可能使用的方法更多,但要全部破译需要一段时间;绕过它们的最简单方法是在您的浏览器中安装一个插件,该插件将禁止任何脚本运行,然后只需禁用阻止您的 CSS 即可。或者只是采取简单的方法,直接从检查元素窗口复制 HTML。正如其他人在评论中所说,有多种方法可以阻止您打开开发者工具,例如 Ctrl + Shift + I 或使用浏览器的菜单。

Demonstrating Fiddle

关于javascript - 该网站如何禁用内容选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57975702/

相关文章:

javascript - 如何修复行跨度的输出?

css - 在我的响应式导航栏中将元素居中

javascript - JSON 中位置 0 处出现意外标记 <(js 和 php)

javascript - Three.js 对象 'shimmering' 远距离

javascript - onclick 为空?

javascript - 在检查子复选框时检查父复选框

javascript - 使 Knockout applyBindings 将选择选项视为数字

html - 无法弄清楚如何将文本水平对齐到输入的左侧

javascript - Javascript 中的动态类名 - 使用 jsfiddle

javascript - 实例化模块时使用angular-google-maps和错误