通过下面的 JS 代码,可以有效地防止别人直接复制拷贝我们的文章,用 frame 标签引用我们的文章时,会自动跳转到文章正常链接,同时禁止右键菜单。
方法一
打开当前主题头部模板 header.php 找到:将下面代码添加到后面:
- <script>
- // 禁止右键
- document.oncontextmenu = function() {
- return false
- };
- // 禁止图片拖放
- document.ondragstart = 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;
- }
- };
- // 禁止 frame 标签引用
- if (parent.frames.length > 0) top.location.replace(document.location);
- </script>
方法二
上面的方法查看源代码时有些乱,可以在当前主题目录新建一个名称为 copyright.js 文件,将下面代码添加进去:
- // 禁止右键
- document.oncontextmenu = function() {
- return false
- };
- // 禁止图片拖放
- document.ondragstart = 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;
- }
- };
- // 禁止 frame 标签引用
- if (parent.frames.length > 0) top.location.replace(document.location);
然后再将下面代码添加到当前主题函数模板 functions.php 的最后:
- function copyrightpro_scripts() {
- wp_enqueue_script( 'copyright', get_template_directory_uri() . '/copyright.js', array(), version, false );
- }
- if (! current_user_can('level_10') ) {
- add_action( 'wp_enqueue_scripts', 'copyrightpro_scripts' );
- }
代码中加了判断,管理员登录状态下防复制代码无效。当然上面的方法,也只是忽悠一下小白,浏览器禁用 JavaScript 后,将失去效果。如果你不喜欢折腾代码的话,可以直接安装该功能的CopyRightPro插件。