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 mask遮罩实现一些特效
Oct 24 HTML / CSS
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
Nov 05 HTML / CSS
详解CSS3中@media的实际使用
Aug 04 HTML / CSS
实例讲解使用CSS实现多边框和透明边框的方法
Sep 08 HTML / CSS
css3 中的新特性加强记忆详解
Apr 16 HTML / CSS
使用CSS3美化HTML表单的技巧演示
May 17 HTML / CSS
CSS3 实现的火焰动画
Dec 07 HTML / CSS
HTML5 Canvas图像模糊完美解决办法
Feb 06 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
Sep 02 HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
Sep 15 HTML / CSS
2014年圣诞节倒计时网页的制作过程
Dec 05 HTML / CSS
Canvas实现保存图片到本地的示例代码
Jun 28 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编写注册后Email激活验证的实例代码
2013/03/11 PHP
php把数组值转换成键的方法
2015/07/13 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PDO::errorCode讲解
2019/01/28 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
Javascript !!的作用
2008/12/04 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python中的CURL PycURL使用例子
2014/06/01 Python
python内存管理分析
2015/04/08 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
浅谈Python中的bs4基础
2018/10/21 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
如何写毕业求职自荐信
2013/11/06 职场文书
关于赌博的检讨书
2014/01/24 职场文书
求职信模板
2014/05/23 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
企业整改报告范文
2014/11/08 职场文书
单位未婚证明范本
2014/11/25 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
Python内置的数据类型及使用方法
2022/04/13 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python