2010-12-15 74 views

Répondre

27

Une option consiste à replace the context menu avec votre propre JavaScript déclenché équivalent.

Firefox mis en œuvre le menu element où vous pouvez ajouter au menu contextuel existant. Il a également été mis en œuvre dans Chrome derrière un drapeau. Malheureusement, cette fonctionnalité a été removed from the W3C standard en raison d'un manque d'intérêt de la mise en œuvre.

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

Pour faire un élément utiliser ce menu contextuel, ajoutez l'attribut contextmenu="mymenu" à lui. Vous pouvez voir ici que mymenu correspond à l'attribut id de l'élément menu.

Source

Demo

+17

En 2016, cette fonctionnalité est toujours pris en charge uniquement par firefox :( – Grief

+6

en 2017 cette fonctionnalité est toujours supportée uniquement par firefox :( – faiwer

-1

Vous ne pouvez pas modifier l'application du client à l'aide d'une page Web. Si cela est possible, réfléchissez à la façon dont les pirates pourraient exploiter notre ordinateur.

Ce que vous pouvez faire, est de définir votre propre menu personnalisé, alors que l'utilisateur clique droit.

Vérifiez cet exemple plugin jquery: http://labs.abeautifulsite.net/archived/jquery-contextMenu/demo/

+5

Vous pouvez interroger les frappes et les événements de la souris et les remplacer par vos propres fonctions, pourquoi un contexte – wubbewubbewubbe

+0

@wubbewubbewubbe, L'OP veut ajouter au menu Contexte du navigateur.Vous avez lu à ce sujet? Et l'exemple est lié à, fait exactement ce que votre commentaire dit.Ainsi les downvoters ne lisent même pas la question ou la réponse maintenant? et downvoting en fonction de votre commentaire? Comment !! – Starx

34

sur les navigateurs modernes que vous pouvez manipuler le menu contextuel intégré comme ceci:

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

Pour en savoir plus: http://www.w3.org/wiki/HTML/Elements/menu

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

+0

Ce Amusing est vraiment bien. est-ce que vous savez si elle peut être de travailler pour Chrome, aussi? – wubbewubbewubbe

+0

je cherchais, je pense qu'il ne peut pas (au moins pour l'instant) – wubbewubbewubbe

+10

Chrome est le nouvel IE6 ... pour l'instant, beaucoup de chose s sont laissés non pris en charge -> http://caniuse.com/#search=menu – vsync