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 :not()选择器实现最后一行li去除某种css样式
Oct 19 HTML / CSS
CSS3实现网站商品展示效果图
Jan 18 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
Jul 06 HTML / CSS
HTML5的结构和语义(2):结构
Oct 17 HTML / CSS
html5基础教程常用技巧整理
Aug 20 HTML / CSS
使用Html5实现异步上传文件,支持跨域,带有上传进度条
Sep 17 HTML / CSS
HTML5 虚拟键盘出现挡住输入框的解决办法
Feb 14 HTML / CSS
HTML5打开手机扫码功能及优缺点
Nov 27 HTML / CSS
详解淘宝H5 sign加密算法
Aug 25 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
Jan 25 HTML / CSS
CSS3实现的侧滑菜单
Apr 27 HTML / CSS
html+css实现环绕倒影加载特效
Jul 07 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
python图像处理之镜像实现方法
2015/05/30 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
pytorch中index_select()的用法详解
2021/01/06 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
全球立体声:World Wide Stereo
2018/09/29 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
亮剑观后感600字
2015/06/05 职场文书
小学运动会前导词
2015/07/20 职场文书
素质教育学习心得体会
2016/01/19 职场文书
初中美术教学反思
2016/02/17 职场文书
高中班主任寄语
2019/06/21 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
python 实现德洛内三角剖分的操作
2021/04/22 Python
利用js实现简单开关灯代码
2021/11/23 Javascript
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python