禁用 WordPress 网站上的右键单击

问题描述 投票:0回答:4
php html wordpress code-snippets
4个回答
0
投票

为什么不使用现有的 WordPress 插件?

例如使用这个

此插件用于禁用网站上的右键单击,以防止剪切、复制、粘贴、保存图像、查看源代码、检查元素等。

但是当管理员或站点编辑者登录时,他可以访问所有内容,而不受上述任何限制。


0
投票

您可以简单地将条件放在 body 标记内。您可能希望将其添加到主题的 header.php 文件中。 您还希望 wordpress 函数

body_class
包含应出现在 body 标记中的所有其他类。

<body <?php if ( !is_user_logged_in() ) {
    echo 'oncontextmenu="return false" onselectstart="return false" onkeydown="if ((arguments[0] || window.event).ctrlKey) return false"';
} ?> <?php body_class(); ?>>

0
投票

只需禁用上下文菜单而不是选择或其他事件。

<body <?php if(!is_user_logged_in()) { echo 'oncontextmenu="return false"'; }?>></body>

0
投票

首先,我在名为“preventcopy.js”的目录中创建了一个 JS 页面,并使用下面的 JS 添加了限制事件

document.oncontextmenu = function() {
  return false
};
document.onselectstart = function() {
  if (event.srcElement.type != "text" && event.srcElement.type != "textarea" && event.srcElement.type != "password") return false;
    else return true;
  };
  if (window.sidebar) {
    document.onmousedown = function(e) {
      var obj = e.target;
      if (obj.tagName.toUpperCase() == "INPUT" || obj.tagName.toUpperCase() == "TEXTAREA" || obj.tagName.toUpperCase() == "PASSWORD") return true;
     else return false;
  }
};
if (parent.frames.length > 0) top.location.replace(document.location);

然后在 function.php 中,我为登录用户启用了访问权限,如下所示。

function copyrightpro_scripts() {
    wp_enqueue_script( 'copyrightpro', get_template_directory_uri() . '/copyprevent.js', array(), false );
}
if ( !is_user_logged_in() ) {
    add_action( 'wp_enqueue_scripts', 'copyrightpro_scripts' );
}

事情就是这样完成的。但考虑到用户体验,我强烈建议用户启用这些功能。

© www.soinside.com 2019 - 2024. All rights reserved.