网站如何阻止选择文本以及如何解除阻止?

网站如何阻止选择文本以及如何解除阻止?

有一个网站(例子) 以某种方式阻止选择文本。它还阻止Ctrl+A选择所有内容,弹出菜单中也没有“复制”。

我已尝试过:

有些网站使用 JavaScript 来阻止选择。因此,我在 Firefox 的 no-script 插件中禁用了所有 JavaScript 源。我尝试在 Google Chrome 中使用 Script Safe 插件访问同一个网站。确保所有内容都被阻止,但仍然无法选择文本。鼠标指针在整个网站上仍然是箭头,而不是文本光标。

曾经about:config在 Firefox 中完全禁用 JavaScript。仍然没有效果。

我读到有些网站使用带有 display:block 样式的 DIV,因此我使用 Inspect 检查了网站的样式。整个网站上没有一处提到“block”,无论是嵌入的 CSS 中还是 object style=-attributes 中都没有。

文本不是图像、Flash 或某些 HTML5 画布等。所有内容都在 DIV 和 P 标签内,但未发现可能阻止文本选择的样式。

网站怎么还能屏蔽任何文本选择?更不用说浏览器为什么支持这种行为了。我只想使用选定的单词或句子,然后右键单击在谷歌上搜索它。当网站做这样的事情并迫使我手动在谷歌中输入技术术语和名称时,这很烦人。它扰乱了我的工作流程。

答案1

https://www.angst-panik-hilfe.de/angst-panik.css显示:

body{-webkit-user-select:none;-moz-user-select:-moz-none;
-ms-user-select:none;user-select:none}

因此,该效果适用于整个 BODY 标签。

此 CSS 的文档:Mozilla 开发者站点:用户选择

您可以通过删除开发人员工具中的样式来覆盖它(F12在 Firefox 或 Chrome 中按下) - 您甚至可以创建一个 JavaScript 小程序,在投入时间进行设置后,它就可以在您花费较少精力的情况下删除该样式(如果您计划多次访问该网站,这可能会节省时间)。

我还想补充一点:这可能不是产生部分效果的唯一方法。另一种可能的方法是使用一个不可见的文本DIV覆盖DIV。这样,鼠标光标就不会变成 I 型光标(文本光标),因为光标将基于最顶部的内容DIV。(不过Ctrl-A可能会覆盖该文本。)

当网站做这样的事情并迫使我手动在谷歌中输入技术术语和名称时,这真是令人恼火。它扰乱了我的工作流程。

阿门!看到这个,我对主流浏览器实现这种 CSS 样式感到失望。这种事情确实很烦人!

答案2

正如前面所述,user-select: none页面 CSS 中的设置会禁用页面上的文本选择。删除该文本选择块的最简单方法是通过如下所示的用户脚本来覆盖该设置:

// ==UserScript==
// @name         Force Select
// @version      1.0
// @description  Stop sites from disabling selection of text
// @author       You
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
  'use strict';

  let style = document.createElement('style');
  style.innerHTML = '*{ user-select: auto !important; }';

  document.body.appendChild(style);
})();

笔记:如果保持启用状态,这将应用于每个页面,但在所有情况下可能并不理想。

可以使用用户脚本管理器安装该脚本并轻松打开/关闭,例如暴力猴子坦普猴, 或者油脂猴

答案3

解决这个问题最简单的方法是使用书签:

  1. 在您的浏览器中创建一个新书签。
  2. 将其命名为“启用选择”(不带引号),或任何您喜欢的名称。
  3. 在位置文本框中粘贴此代码:
javascript:(function(){var style=document.createElement('style');
style.innerHTML='*{user-select: auto !important;} ::selection{background-color: blue !important; color: white !important}';
document.body.appendChild(style);
document.body.onselectstart=function(){return true};
document.body.onmousedown=function(){return true};
document.onkeydown=function(){return true};
})();

因此,无论何时您想在某些烦人的网站上启用文本选择,只需单击此书签即可。

此代码处理了大多数常见的 CSS 和 JavaScript 方法,这些方法都是混蛋用来禁用其网站上的文本选择。尽管一些不太常见的方法可能需要对代码进行一些额外的调整。

答案4

打开开发人员工具(F12),切换到元素选项卡,然后取消勾选以下 CSS 规则身体

  • 用户选择:无;
  • webkit-用户选择:无;

演示图像

相关内容