2010-12-15 21 views

Respuesta

27

Una opción es replace the context menu con su propio equivalente activado por JavaScript.

Firefox implementó el menu element donde puede agregar al menú contextual existente. También se implementó en Chrome detrás de una bandera. Lamentablemente, esta característica ha sido removed from the W3C standard debido a la falta de interés en la implementación.

<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> 

Haciendo elemento de uso de este menú contextual, añadir el atributo contextmenu="mymenu" a ella. Puede ver aquí que mymenu coincide con el atributo id del elemento menu.

Source

Demo

+17

En el año 2016, esta función todavía se soporta solamente por Firefox :( – Grief

+6

en 2017 esta función todavía se soporta solamente por Firefox :( – faiwer

-1

No se puede modificar la solicitud del cliente mediante una página web. Si esto fuera posible, solo piense en cómo los hackers podrían explotar nuestra computadora.

Lo que puede hacer es definir su propio menú personalizado, mientras que el usuario hace clic derecho.

Marque esta jQuery plugin de ejemplo: http://labs.abeautifulsite.net/archived/jquery-contextMenu/demo/

+5

Puede consultar las pulsaciones de teclas y eventos de ratón y reemplazarlos con sus propias funciones, ¿por qué un contexto ¿el menú debe ser diferente? – wubbewubbewubbe

+0

@wubbewubbewubbe, el OP quiere agregar al menú contextual del navegador. ¿Has leído sobre eso? Y el ejemplo está conectando con, hace exactamente lo que dice tu comentario. Así que los downvoters ni siquiera están leyendo la pregunta o la respuesta ahora? Y la votación negativa en función de tu comentario? ¡Qué divertido! – Starx

34

en los navegadores modernos se puede manipular el menú contextual integrado así:

<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> 

Para la lectura adicional: http://www.w3.org/wiki/HTML/Elements/menu

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

+0

Esto es realmente bueno. ¿Sabes si también se puede hacer que funcione para Chrome? – wubbewubbewubbe

+0

Busqué, creo que no puede (al menos por ahora) – wubbewubbewubbe

+10

Chrome es el nuevo IE6 ... por ahora, muchas cosas s quedan sin soporte -> http://caniuse.com/#search=menu – vsync

Cuestiones relacionadas