HTML5中原生的右键菜单创建方法


Posted in HTML / CSS onJune 28, 2016

即使是JavaScript被禁止,这些右键菜单仍然能正常显示。所以,如果你想尊重用户的选择,最好的方法是用JavaScript来创建这些菜单元素,注入到DOM元素里,这样,当JavaScript被禁止时,这些右键菜单也不显示了。

HTML5中原生的右键菜单创建方法

HTML5规范里有一个被大家忽略里的好东西,那就是右键菜单。HTML5里的右键菜单规范显示,程序员可以通过创建简单的HTML5menu和menuitem标记来生成右键菜单。菜单只在指定区域的右键菜单内显示。所以,你不需要再通过创建浏览器插件来实现这种效果。下面就让我来展示如何用基本的HTML标记来创建个性化的右键菜单!

HTML代码

首先我们定义一个HTML区域,给它分配一个ID,之后我们要用到这个ID:

XML/HTML Code复制内容到剪贴板
  1. <section contextmenu="mymenu">  
  2.  <!--    
  3.   为了让代码清晰整洁   
  4.   我会把菜单放到这个元素内部    
  5.  -->  
  6. </section>  
  7.   

定义好这个元素后,现在我们来创建真正的菜单元素:

XML/HTML Code复制内容到剪贴板
  1. <menu type="context" id="mymenu">  
  2.  <menuitem label="重新加载本文" onclick="window.location.reload();" icon="/images/refresh-icon.png"></menuitem>  
  3.  <menuitem label="跳跃至评论区" onclick="window.location='#comments';" icon="/images/comment_icon.gif"></menuitem>  
  4.  <menu label="分享本文至..." icon="/images/share_icon.gif">  
  5.   <menuitem label="新浪微博" icon="/images/twitter_icon.gif" onclick="goTo('//twitter.com/intent/tweet?text=' + document.title + ':  ' + window.location.href);"></menuitem>  
  6.   <menuitem label="QQ空间" icon="/images/facebook_icon16x16.gif" onclick="goTo('//facebook.com/sharer/sharer.php?u=' + window.location.href);"></menuitem>  
  7.  </menu>  
  8. </menu>  
  9.   

注意,这里的menu标记的ID和上面的contextmenu里的值是一致的,这样做的效果是,只有在上面的那个section区域里点击右键时才会显示这些右键菜单。这些菜单里可以配置菜单名,菜单图标和onclick事件,用来声明它们的意义和要执行的动作。动作可以是预先定义的JavaScript动作,或是执行inline的JavaScript代码。相同的菜单可以放到页面的多个区域,不需要重复创建。

目前只有火狐浏览器是唯一实现了这个API的浏览器。一些特别重要的功能我一般不喜欢放到右键菜单里,但有这样的功能当然是十分方便,这个API的主旨是提高易用性而不会有任何负面影响。我在菜单里放置的分享功能就是一个很好的例子。相信你在你的项目里也经常使用右键菜单,不是吗?

HTML / CSS 相关文章推荐
css3背景图片透明叠加属性cross-fade简介及用法实例
Jan 08 HTML / CSS
一款简洁的纯css3代码实现的动画导航
Oct 31 HTML / CSS
HTML5本地存储之Database Storage应用介绍
Jan 06 HTML / CSS
html5实现多文件的上传示例代码
Feb 13 HTML / CSS
HTML5之tabindex属性全面解析
Jul 07 HTML / CSS
HTML5本地存储和本地数据库实例详解
Sep 05 HTML / CSS
有关HTML5中背景音乐的自动播放功能
Oct 16 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
Apr 25 HTML / CSS
AmazeUI 加载进度条的实现示例
Aug 20 HTML / CSS
Css预编语言及区别详解
Apr 25 HTML / CSS
浅谈为什么我的 z-index 又不生效了
Jul 15 HTML / CSS
前端使用svg图片改色实现示例
Jul 23 HTML / CSS
使用HTML5里的classList操作CSS类
Jun 28 #HTML / CSS
HTML5 canvas基本绘图之图形组合
Jun 27 #HTML / CSS
HTML5不支持标签和新增标签详解
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之文字渲染
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之绘制曲线
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之图形变换
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之填充样式实现
Jun 27 #HTML / CSS
You might like
PHP flush 函数使用注意事项
2016/08/26 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
中科方德软件测试面试题
2016/04/21 面试题
Servlet的生命周期
2013/08/25 面试题
公益广告语集锦
2014/03/13 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
2014年护理部工作总结
2014/11/14 职场文书
爱的承诺书
2015/01/20 职场文书
留学推荐信怎么写
2015/03/26 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书