[JS] CrossBrowser: Eigen context menu bij rechtsklikken

Pagina: 1
Acties:

  • Burat
  • Registratie: Oktober 1999
  • Niet online

Burat

bos wortels

Topicstarter
Voor de beheer-kant van een webapplicatie wil ik in een specifiek element graag een eigen context menu maken. Dus als er met rechts geklikt wordt, popt niet het menu van de browser, maar wordt een eigen divje zichtbaar.

Het is lastig zoeken op internet, want veel mensen willen graag alleen maar de hele rechtermuisknop uitschakelen (lame, lame..).

Ik heb geprobeerd om de mousedown, mouseup, click en contextmenu events af te vangen en in die functie het divje zichtbaar te maken en door 'false' te returnen de browser contextmenu te blocken.

Dat eerste lukt prima. Mijn eigen divje verschijnt in elke browser na een klik met rechts op de juiste plaats. Maar ook verschijnt overal gewoon het context menu.

Kan iemand mij helpen met een voorbeeld, tips of links?

Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Je zult ook het contextmenu moeten uitschakelen (en daar heb je scriptjes genoeg voor zoals je al zei :P). En hier je eigen script voor in de plaats moeten zetten. contextmenu kun je disablen door simpelweg false te returnen op het oncontextmenu event.

Alleen kan dit volgens mij in niet-IE browsers niet en heb je daar dus een probleem..

[ Voor 28% gewijzigd door Bosmonster op 10-02-2004 12:18 ]


  • dominic
  • Registratie: Juli 2000
  • Laatst online: 08-02 14:55

dominic

will code for food

return je ook weer false aan het window object?

dus: <element onmouseclick="return handleMouseClickFunctie()">

Download my music on SoundCloud


Verwijderd

Bosmonster schreef op 10 februari 2004 @ 12:17:
Alleen kan dit volgens mij in niet-IE browsers niet en heb je daar dus een probleem..
yup kan wel, heb het gezien bij de XML editor van Bitflux

linkje gevonden:
http://lab.artlung.com/scripting/oncontextmenu/

[ Voor 13% gewijzigd door Verwijderd op 10-02-2004 12:27 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:20

crisp

Devver

Pixelated

Bosmonster schreef op 10 februari 2004 @ 12:17:
Je zult ook het contextmenu moeten uitschakelen (en daar heb je scriptjes genoeg voor zoals je al zei :P). En hier je eigen script voor in de plaats moeten zetten. contextmenu kun je disablen door simpelweg false te returnen op het oncontextmenu event.

Alleen kan dit volgens mij in niet-IE browsers niet en heb je daar dus een probleem..
In de GoT Tracker werkt het ook in Mozilla hoor; ik cancel daar het mousedown event...

Intentionally left blank


  • Burat
  • Registratie: Oktober 1999
  • Niet online

Burat

bos wortels

Topicstarter
Bosmonster:
bij het oncontextmenu event false returnen werkt .. zolang ik niet m'n eigen divje display. Dan doet ie toch het contextmenu weergeven, hoe vaak ik ook false return ;).

dominic:
Jep :)

Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:20

crisp

Devver

Pixelated

ik zal vanavond eens kijken of ik een simpel voorbeeld kan maken van hoe ik het in de GoT Tracker heb geregelt.

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Hmm.. heeft dat geen nadelige gevolgen als je het hele mousedown event cancelled? Ook al doe je het met alleen de rechtermuisknop?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:20

crisp

Devver

Pixelated

Bosmonster schreef op 10 februari 2004 @ 12:42:
Hmm.. heeft dat geen nadelige gevolgen als je het hele mousedown event cancelled? Ook al doe je het met alleen de rechtermuisknop?
Nee, want ik cancel het event alleen bij een mousedown op een element waarbij ik een eigen contextmenu wil laten zien, en dan ook alleen als het de rechtermuisknop betreft :)

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Burat schreef op 10 februari 2004 @ 12:21:
Bosmonster:
bij het oncontextmenu event false returnen werkt .. zolang ik niet m'n eigen divje display. Dan doet ie toch het contextmenu weergeven, hoe vaak ik ook false return ;).

dominic:
Jep :)
Net even geprobeerd maar dat werkt prima hier onder IE6.

  • Burat
  • Registratie: Oktober 1999
  • Niet online

Burat

bos wortels

Topicstarter
Ik weet intussen wat er fout ging bij mij..

Het oncontextmenu event is later dan de onmousedown. Dus mijn layer werd al neergezet voordat het oncontextmenu event werd gevuurd. En aangezien die layer geen oncontextmenu handler had, werd het contextmenu gewoon getoond.

Dus.. veel geklooi, maar het werkt nu. Iig in IE, dan komt het in Mozilla ook wel goed :).

Homepage | Me @ T.net | Having fun @ Procurios | Collega's gezocht: Webontwikkelaar PHP


  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 20-04 14:47

Dutch_guy

WYSIWYG

Is het ook mogelijk om een ander context menu weer te geven als er geklikt wordt op een plaatje ?

Ik wil namelijk dat als men rechtermuisklik (of links, nog mooier) op een plaatje doet er een eigen menu tevoorschijn komt.
Daar moeten dan een aantal opties staan, zoals opslaan, printen, etc. etc.

Gewoon zodat het er mooier uitziet dan het standaard context menu.

Is dat mogelijk ? Of heeft iemand daar een voorbeeld van ?

Pay peanuts get monkeys !


Verwijderd

Dutch_guy schreef op 10 februari 2004 @ 15:19:
Is het ook mogelijk om een ander context menu weer te geven als er geklikt wordt op een plaatje ?

Ik wil namelijk dat als men rechtermuisklik (of links, nog mooier) op een plaatje doet er een eigen menu tevoorschijn komt.
Daar moeten dan een aantal opties staan, zoals opslaan, printen, etc. etc.

Gewoon zodat het er mooier uitziet dan het standaard context menu.

Is dat mogelijk ? Of heeft iemand daar een voorbeeld van ?
Met opslaag en printen e.d. weet ik niet OF het mogelijk is.
Maar met JS zijn er zat mogelijkheden om je rechter (en ik mag aannemen met een kleine aanpassing, ook je linker) muisknop aan te passen . . . .

Hier is bijvoorbeeld een script voor zo'n dergelijk menu . . .(heb wel gehoord dat het een beetje over compatible is :))
Pagina: 1