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绘制百度的小度熊
Oct 29 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
Jan 31 HTML / CSS
css3 按钮样式简单可扩展创建
Mar 18 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
Dec 12 HTML / CSS
使用CSS3的font-face字体嵌入样式的方法讲解
May 13 HTML / CSS
CSS3动画:5种预载动画效果实例
Apr 05 HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
Nov 19 HTML / CSS
html5 touch事件实现触屏页面上下滑动(二)
Mar 10 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
Jul 03 HTML / CSS
html5 更新图片颜色示例代码
Jul 29 HTML / CSS
用HTML5制作视频拼图的教程
May 13 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
Apr 27 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程序设计中的MVC编程思想
2014/07/28 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
图片按比例缩放函数
2006/06/26 Javascript
javascript json 新手入门文档
2009/12/03 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
JS分页的实现(同步与异步)
2017/09/16 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
Python实现Linux的find命令实例分享
2017/06/04 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
python实现猜单词小游戏
2020/05/22 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
python实现简单加密解密机制
2019/03/19 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Python爬虫开发与项目实战
2020/12/16 Python
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
求职自荐书范文
2013/12/04 职场文书
大学生求职自我评价
2014/01/16 职场文书
学习经验交流会主持词
2014/04/01 职场文书
初一新生军训方案
2014/05/22 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python