关于WordPress博客修改的时候,实现右键菜单显示优化,网上有很多教程。
这些教程中的提供的代码,要不有很多不知所云的部分,要不根本无法使用。应该是是由于转载过来的时候没有经过验证,还有就是随意删减代码导致的。
在蝈蝈要安静博客看到这个功能觉得不错,就想将这个功能代码集成到了自己网站上。
[ad]
在使用这个功能的时候,因为经常需要调试网站,可能会造成无法使用“审查元素”、“查看代码”等功能,这个时候就需要加一个访客身份判断,用以判断用户身份。
访客身份前端显示分别如下:
以上就是网站效果,
集成代码如下:
JavaScript 代码
新建一个名为 qgg-user-rcm.js 的文件,将以下代码丢到该文件中去,以便后面引用。
/** 鼠标右键菜单功能 */ (function(a) { a.extend({ mouseMoveShow: function(b) { var d = 0, c = 0, h = 0, k = 0, e = 0, f = 0; a(window).mousemove(function(g) { d = a(window).width(); c = a(window).height(); h = g.clientX; k = g.clientY; e = g.pageX; f = g.pageY; h + a(b).width() >= d && (e = e - a(b).width() - 5); k + a(b).height() >= c && (f = f - a(b).height() - 5); a("html").on({ contextmenu: function(c) { 3 == c.which && a(b).css({ left: e, top: f }).show() }, click: function() { a(b).hide() } }) }) }, disabledContextMenu: function() { window.oncontextmenu = function() { return !1 } } }) })(jQuery); function printMe() { var global_Html = ""; global_Html = document.body.innerHTML; document.body.innerHTML = document.querySelector('.content').innerHTML; window.print(); window.setTimeout(function() { document.body.innerHTML = global_Html; }, 1500); } function getSelect() { var a = window.getSelection ? window.getSelection() : document.selection.createRange().text; "" == a ? alert("啊噢~~~,你没还没选择文字呢!!!") : document.execCommand("Copy") } function baiduSearch() { var a = window.getSelection ? window.getSelection() : document.selection.createRange().text; "" == a ? alert("啊噢~~~,你没还没选择文字呢!!!") : window.open("https://www.baidu.com/s?wd=" + a) } function googleSearch() { var a = window.getSelection ? window.getSelection() : document.selection.createRange().text; "" == a ? alert("啊噢~~~,你没还没选择文字呢!!!") : window.open("https://www.google.com/search?q=" + a) } $(function() { for (var a = navigator.userAgent, b = "Android;iPhone;SymbianOS;Windows Phone;iPad;iPod".split(";"), d = !0, c = 0; c < b.length; c++) if (0 < a.indexOf(b[c])) { d = !1; break } d && ($.mouseMoveShow(".user-rcm"), $.disabledContextMenu()) });
也可以将代码直接复制到网站 JS 文件中。
CSS 代码
CSS 代码配置没什么好说的,直接将下面代码丢到网站 CSS 文件中去即可。
/** 鼠标右键功能 */ a {text-decoration: none;} div.user-rcm{background-repeat:no-repeat;background-position:center center;background-size:cover;background-color:#fff;font-size:13px!important;width:130px;-moz-box-shadow:1px 1px 3px rgba (0,0,0,.3);box-shadow:1px 1px 3px rgba(0,0,0,.3);position:absolute;display:none;z-index:10000;opacity:0.9;} div.user-rcm ul{list-style-type:none;list-style-position:outside;margin:0px;padding:0px;display:block} div.user-rcm ul li{margin:0px;padding:0px;line-height:35px;border-bottom:1px solid #ccc;} div.user-rcm ul li a{color:#666;padding:0 15px;display:block} div.user-rcm ul li a:hover{color:#fff;background:rgba(36, 160, 240, 0.6);} div.user-rcm ul li a i{margin-right:10px} a.disabled{color:#c8c8c8!important;cursor:not-allowed} a.disabled:hover{background-color:rgba(255,11,11,0)!important} div.user-rcm{background:#fff !important;}
CSS 样式大家如果不喜欢,可以自己调整一下。。。
前端显示代码
新建名称为modify-user-right-click-menu.php文件,将以下代码复制到该文件中。
<?php /** * @name 用户右键菜单修改 */ ?> <div class="user-rcm"> <ul> <li><a href="javascript:window.location.reload();"><i class="fa fa-refresh fa-fw"></i><span>刷新页面</span></a></li> <li><a href="javascript:history.go(1);"><i class="fa fa-arrow-right fa-fw"></i><span>前进一页</span></a></li> <li><a href="javascript:history.go(-1);"><i class="fa fa-arrow-left fa-fw"></i><span>后退一页</span></a></li> <li><a href="javascript:void(0);" onclick="getSelect();"><i class="fa fa-clipboard fa-fw"></i><span>复制文字</span></a></li> <li><a target="_self" href="javascript:void(0);"onclick="printMe();"><i class="fa fa-print fa-fw"></i><span>打印页面</span></a></li> <li><a target="_blank" href="javascript:void(0);" onclick="googleSearch();"><i class="fa fa-chrome fa-fw"></i><span>谷歌搜索</span></a></li> <li><a target="_blank" href="javascript:void(0);" onclick="baiduSearch();"><i class="fa fa-paw fa-fw"></i><span>百度搜索</span></a></li> <li><a target="_blank" href="<?php%20bloginfo('rss2_url');%20?>"><i class="fa fa-rss-square fa-fw"></i><span>订阅本站</span></a></li> </ul> </div>
与上面 JavaScript 代码一样,如果你不需要访客身份判断,也可以将代码直接复制到网站前端文件中。
WordPress 判断用户身份
如果你不需要下面的功能,复制上面代码到对应的文件中去即可使用该功能。
但是如果自己后期对网站要进行调试,需要访客身份判断。
配置好wpbox-user-rcm.js和modify-user-right-click-menu.php后,通过以下代码调用这两个文件即可。
<?php if( !current_user_can( 'manage_options' ) ){ require_once get_stylesheet_directory() . '/modify/modify-user-right-click-menu.php'; ?> <script type="text/javascript" src="<?php%20echo%20get_template_directory_uri();%20?>/js/qgg-user-rcm.js"></script> <?php } ?>
注意将代码中的路径替换为你真实存放文件的路径。
如果WordPress主题是使用Option FrameWork框架的用户,比如大前端的DUX,如果要在后台可以方便地启用和停用该功能,可以把下面代码放到主题 options.php 文件中,这样就有了一个开启和停用的选项:
// 右键菜单优化 $options[] = array( 'name' => __('全站右键菜单优化', 'QGG'), 'id' => 'qgg_right_click_menu_open', 'std' => true, 'desc' => __('开启', 'QGG'), 'type' => 'checkbox');
然后,调用代码改为:
<?php if( !current_user_can( 'manage_options' ) && QGG_options('qgg_right_click_menu_open') ){ require_once get_stylesheet_directory() . '/diy/modify/modify-user-right-click-menu.php'; ?> <script type="text/javascript" src="<?php%20echo%20get_template_directory_uri();%20?>/diy/js/qgg-user-rcm.js"></script> <?php } ?>