禁用右键单击 WordPress 站点
Disable Right Click on WordPress Site
我想禁用右键单击我的 wordpress 网站。我写了一个小片段并插入到禁用右键单击、CTRL 事件和键盘输入的正文中。
<body oncontextmenu="return false" onselectstart="return false" onkeydown="if ((arguments[0] || window.event).ctrlKey) return false"></body>
但是当我想在网站上复制一些东西时很烦人。有没有一种方法可以修改当前代码段,比如只有登录用户才能访问禁用的事件?
干杯。
为什么不使用现有的 wordpress 插件?
此插件用于禁用右键单击网站以防止剪切、复制、粘贴、保存图像、查看源代码、检查元素等
但是当管理员或网站编辑登录时,他可以访问所有内容而不受上述任何限制。
您可以简单地在 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(); ?>>
只是禁用上下文菜单而不是 select 或其他事件。
<body <?php if(!is_user_logged_in()) { echo 'oncontextmenu="return false"'; }?>></body>
首先,我在名为“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' );
}
就是这样完成的。但我强烈建议考虑用户体验的用户启用这些功能。
我想禁用右键单击我的 wordpress 网站。我写了一个小片段并插入到禁用右键单击、CTRL 事件和键盘输入的正文中。
<body oncontextmenu="return false" onselectstart="return false" onkeydown="if ((arguments[0] || window.event).ctrlKey) return false"></body>
但是当我想在网站上复制一些东西时很烦人。有没有一种方法可以修改当前代码段,比如只有登录用户才能访问禁用的事件?
干杯。
为什么不使用现有的 wordpress 插件?
此插件用于禁用右键单击网站以防止剪切、复制、粘贴、保存图像、查看源代码、检查元素等
但是当管理员或网站编辑登录时,他可以访问所有内容而不受上述任何限制。
您可以简单地在 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(); ?>>
只是禁用上下文菜单而不是 select 或其他事件。
<body <?php if(!is_user_logged_in()) { echo 'oncontextmenu="return false"'; }?>></body>
首先,我在名为“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' );
}
就是这样完成的。但我强烈建议考虑用户体验的用户启用这些功能。