阻止文本选择和右键点击操作

我已经尝试过寻找阻止鼠标右键单击和文本选择的方法。Discourse 提供了此功能,但我尝试了几种其他方法,但尚未找到理想的方案。因此,我正在寻找一些代码来使用。我发现了这个方法。

添加到 CSS

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

  button, .menu-item {
    pointer-events: auto !important;
  }

并添加到 head 的 JavaScript

<script type="text/discourse-plugin" version="0.8">
  if (settings.prevent_right_click) {
    document.addEventListener('contextmenu', function(e) {
      e.preventDefault(); // 取消右键单击操作

      // 检查是否启用了警报消息
      if (settings.alert_enabled) {
        alert(settings.alert_message);
      } else {
        // 检查是否启用了文本选择阻止
        if (settings.prevent_text_selection) {

        }
      }
    });
  }
</script>

我在我的论坛上试了一下。在用户层面没有发现异常。但是,我仍然不确定它是否还有其他不良影响。
为了测试它,我创建了一个主题组件。
如果我的方法不正确,或者您知道更好的方法。请告知我。

你为什么要这样做?如果你试图保护文本不被复制,还有无数其他方法可以复制它,所以你实际上并没有保护任何东西,只是惹恼了合法用户。

5 个赞

感谢您的回复。
他们像在我的社区论坛上很普遍一样复制粘贴。因此,我认为这将使他们更难复制。我的社区作者敦促我保存他们的作品,以便他们在论坛上发布。尽管我解释说无法阻止。至少告知作者他们的作品正在被保存。
就用户在使用论坛时可能遇到的烦恼而言,我认为仍有改进的空间。此外,我不确定我的想法是否完全准确。如果有更好的方法,我愿意尝试。

2 个赞

您可以考虑更积极的标记和审核。

随着生成式人工智能的出现,情况只会变得更糟。

2 个赞

几个小时前,我使用人工智能复制粘贴了一段文本,当时管理员被禁止右键单击。对于 iPad 来说,这比传统方法要容易得多……

所以……

2 个赞

你也可以直接从页面源代码中复制,或者使用扩展程序强制覆盖禁用的文本选择(和右键单击)。

2 个赞

也许您的更改会说服那些正在生成文本的人,并说服他们您正在努力提供帮助,但这里有两种非常简单的方法可以完全绕过 JavaScript 来获取文本。

https://meta.discourse.org/raw/311289/3https://meta.discourse.org/t/prevent-text-selection-and-right-click-actions/311289/3.json

3 个赞

您看过 Add copyright protection to tagged topicsGitHub - VaperinaDEV/copyrighted-topic 吗?