JQuery右键菜单插件contextmenu事件控制右键事件

新的项目中要求在图片上不能进行点击下载,针对小白进行简单防盗链防下载!我想到了contextmenu事件控制右键事件,且兼容所有主流浏览器。实现原理是绑定contextmenu事件,阻止浏览器的默认事件,显示你的自定义菜单(或者直接阻止,以达到屏蔽右键菜单的效果)。

 代码如下 复制代码

window.onload = function(e) {
    var showimgtag = document.getElementById('showimgtag'),
        showimgtagF = showimgtag.parentNode,
        menu = document.getElementById('menu');
   
    addHandler(showimgtag, 'contextmenu', function(e){
        e = e || window.event;
        preventDefault(e);
       
        menu.style.left = e.pageX+'px';
        menu.style.top = e.pageY+'px';
        menu.style.display = 'block';
        menu.innerHTML = '© '+'author';
    });
 
    addHandler(menu, 'contextmenu', function(e){
        e = e || window.event;
        preventDefault(e);
    });
 
    addHandler(document, 'mousedown', function(e){
        e = e || window.event;
        var obj = e.srcElement?e.srcElement:e.target;
        if(isChild(menu, obj)){
            return false;
        }
        menu.style.display = 'none';
    });
};
 
function isChild(parent, child) {
    while (child != null) {
        if (child == parent) {
            return true;
        }
        child = child.parentNode;
    }
    return false;
}
 
function addHandler(element, type, handler) {
    if(element.addEventListener){
        element.addEventListener(type,handler,false);
    }else{
        element.attachEvent('on'+type,handler);
    }
}
 
function preventDefault(e){
    e = e || window.event;
    if(e.preventDefault){
        e.preventDefault();
    }else{
        e.returnValue = false;
    }
}

时间: 2024-11-08 19:16:12

JQuery右键菜单插件contextmenu事件控制右键事件的相关文章

JQuery右键菜单插件ContextMenu使用指南

 通过此插件可以在不同的html元素内建立contextmenu,并且可以自定义样式.   代码如下: <HTML>  <HEAD>   <TITLE> JQuery右键菜单 </TITLE>   <script  src="jquery-1.2.6.min.js"></script>   <script src="jquery.contextmenu.r2.js"></scr

JQuery右键菜单插件ContextMenu使用指南_jquery

插件下载地址: http://www.trendskitchens.co.nz/jquery/contextmenu/jquery.contextmenu.r2.js 压缩版: http://www.trendskitchens.co.nz/jquery/contextmenu/jquery.contextmenu.r2.packed.js Jquery主页:   http://jquery.com/ 通过此插件可以在不同的html元素内建立contextmenu,并且可以自定义样式. 复制代码

分享14个很酷的jQuery导航菜单插件_jquery

导航按钮是网站的非常重要的一部分,因其将网站的所有部分而集中一处,jQuery导航菜单插件在其中扮演重要的角色. 本文介绍了14个很酷的jQuery导航菜单插件,它们够漂亮.简单,并且完全兼容各种类型的web浏览器. 1.Facets Navigation Demo | Download 2.Rocking & Rolling Demo | Download 3.Garage Door Menu Demo | Download 4.Little Boxes Menu Demo | Downloa

谁做过能编辑的树形菜单,有没有能编辑的jquery树形菜单插件,或者其他的JS菜单也行

问题描述 谁做过能编辑的树形菜单,有没有能编辑的jquery树形菜单插件,或者其他的JS菜单也行 解决方案 解决方案二: 解决方案三:http://www.ztree.me/v3/demo.php#_101感觉比easyui的好一点解决方案四:ztree和easyui的都可以.但是ztree要好点解决方案五:ztree和easyui都行吧··不过我都是用easyui的可编辑算是树菜单一个控件都会有的吧

jQuery响应菜单插件PgwMenu使用例子

jQuery响应菜单插件PgwMenu pgwmenu是一个轻量级的jQuery响应菜单,充分响应导航菜单(桌面和移动设备),CSS自定义皮肤,SEO菜单优化. 使用方法: <link rel="stylesheet" type="text/css" href="pgwmenu.min.css"/> <script type="text/javascript" src="jquery.min.js&

jquery实现右键菜单插件_jquery

今天开发一个项目的时候需要一个模拟鼠标右键菜单的功能.也就是在网页点击鼠标右键的时候不是弹出系统的菜单而是我们制定的内容.这样可以拓展右键的功能.实现过程不多说了,写出来的代码和效果如下: js部分: 复制代码 代码如下: //创建右键菜单 var epMenu={     create:function(point,option){         var menuNode=document.getElementById('epMenu');         if(!menuNode){   

15款优秀的jQuery导航菜单插件分享_jquery

1. Apple Menu Style 2. Color Fading Menu 3. Animated Drop Down Menu 4. Random Link Color 5. Scrollable 6. Moo Tool Homepage like 7. Animated Menu 8. jqDock Menu 9. Sliding jQuery Menu 10. CSS Mac Book Menu 11. Kwicks 12. Fading Menu with Content Repl

3种不同的ContextMenu右键菜单实现代码_jquery

简单使用的右键菜单,希望能帮助大家.下面是截图和实例代码 实例预览 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>

jquery自定义右键菜单、全选、不连续选择_jquery

最近在项目中要实现一些自定义效果,例如右键菜单.全选.不连续选择等等,个人认为主要是理清楚逻辑和事件关系.要实现这些,也有现成的插件可以用,如jQuery UI的selectable. 1.右键菜单 当浏览网页时,单击鼠标右键(或ctrl+触模板左键)会出现浏览器默认的右键菜单项,就像这样子的: 但是当要对某个元素自定义右键,像这样子的: 就必须得先禁用浏览器默认的菜单,需要监听contextmenu事件,关键代码如下: $(function(){ $('#box').on('contextme