添加到浏览器上下文菜单?

Rel*_*lla 46 html javascript browser

是否可以将项目添加到默认浏览器右键单击菜单?

vsy*_*ync 37

更新28/8/18 - 这已过时


在现代浏览器中,您可以像这样操作内置上下文菜单:

<menu type="context" id="supermenu">
 <menuitem label="trial" onclick="alert('Smile please')"></menuitem>
  <menuitem label="rotate" onclick="rotate()" icon="http://cdn1.iconfinder.com/data/icons/silk2/arrow_rotate_clockwise.png"></menuitem>
  <menuitem label="resize" onclick="resize()" icon="http://cdn3.iconfinder.com/data/icons/fugue/icon/image-resize.png"></menuitem>
  <menu label="share">
    <menuitem label="twitter" onclick="alert('foo')"></menuitem>
    <menuitem label="facebook" onclick="alert('bar')"></menuitem>
  </menu>
</menu>

<a href='#' contextmenu="supermenu">Right click me</a>
Run Code Online (Sandbox Code Playgroud)

如需进一步阅读:http: //www.w3.org/wiki/HTML/Elements/menu

演示:https://bug617528.bugzilla.mozilla.org/attachment.cgi?id = 554309

  • Chrome是新的IE6 ......目前,很多东西都没有得到支持 - > http://caniuse.com/#search=menu (11认同)
  • 这已被弃用并从 HTML 规范中删除。 (2认同)

ale*_*lex 35

一种选择是用您自己的JavaScript触发的等效项替换上下文菜单.

Firefox实现了可以添加到现有上下文菜单的menu元素.它也是在旗帜后面的Chrome中实现的.遗憾的是,由于缺乏实施兴趣,此功能已从W3C标准中删除.

<menu type="context" id="mymenu">
    <menuitem label="Refresh Post" onclick="window.location.reload();" icon="/images/refresh-icon.png"></menuitem>
    <menuitem label="Skip to Comments" onclick="window.location='#comments';" icon="/images/comment_icon.gif"></menuitem>
    <menu label="Share on..." icon="/images/share_icon.gif">
        <menuitem label="Twitter" icon="/images/twitter_icon.gif" onclick="goTo('//twitter.com/intent/tweet?text=' + document.title + ':  ' + window.location.href);"></menuitem>
        <menuitem label="Facebook" icon="/images/facebook_icon16x16.gif" onclick="goTo('//facebook.com/sharer/sharer.php?u=' + window.location.href);"></menuitem>
    </menu>
</menu>
Run Code Online (Sandbox Code Playgroud)

要使元素使用此上下文菜单,请将contextmenu="mymenu"属性添加到其中.您可以在此处看到mymenu与元素id属性匹配的menu内容.

资源

演示

  • 在2016年,只有firefox支持此功能:( (24认同)
  • 在2017年这个功能仍然只有firefox支持:( (13认同)
  • 在2019年,这个功能仍然只有firefox支持:( (10认同)
  • 在2018年,这个功能仍然只有firefox支持:( (8认同)