[js]context-menu uitschakelen in Mozilla

Pagina: 1
Acties:

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Ik heb mijneveger nagebouwd in javascript alleen, zit nu nog met het probleem dat als ik 'm in Mozilla open, de rechtermuisknop nog steeds het context-menuutje laat zien, wat vrij irritant is.
Via de search was ik al op dit topic terecht gekomen waarmee het me wel gelukt is het voor IE uit te schakelen, maar voor Mozilla werkt het dus niet. Heb nog wel verder gezocht, maar kon niets vinden wat wel werkte of wat daar nog niet werd vermeld.
Iemand een idee?


p.s. voor de duidelijkheid: in mijneveger klik je met je linkermuisknop op een vakje om aan te geven dat je denkt dat er geen mijn onder ligt en met je rechtermuisknop om aan te geven dat er wel een mijn onderligt. Dat gegeven heb ik dus al na kunnen bouwen, alleen zit ik nu in mozilla dus nog met het menuutje wat normaal tevoorschijnkomt als je binnen een webpage op de rechtermuisknop klikt. En daar wil ik uiteraard vanaf.

edit:
shit, kan een mod van content-menu in de topic-title misschien context-menu maken?

[ Voor 6% gewijzigd door marty op 26-04-2004 01:40 ]


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 25-05 20:56
Dat kan gelukkig niet. Het zou een mooie boel worden als een website zomaar het contextmenu uit kon schakelijk, wat strontvervelend is voor de gebruiker. Je zult een andere interface moeten verzinnen.

edit:
Wat ik hierboven zeg, blijkt dus niet te kloppen. :P

[ Voor 21% gewijzigd door Soultaker op 27-04-2004 18:16 ]


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
nou, van mij mag je het context-menu nog wel accessen via View bovenin het menu ofzo, maar ik wil alleen dat het niet meer met de rechtermuisknop kan.
En ja, ik ben het met je eens dat het superirritant is als websites dat doen om zogenaamd de bron te beschermen (wat toch niet kan). Maar in dit geval is het echt hinderlijk als ie wel tevoorschijn komt (en dat zal iedere gebruiker met me eens zijn :))
Je zult een andere interface moeten verzinnen.
suggesties? :)

  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
volgens mij moet dit ook in Mozilla werken (werkt iig in Firefox)
JavaScript:
1
2
3
4
5
6
7
8
9
10
document.oncontextmenu = function(){return false}
if(document.layers) {
    window.captureEvents(Event.MOUSEDOWN);
    window.onmousedown = function(e){
        if(e.target==document)return false;
    }
}
else {
    document.onmousedown = function(){return false}
}


edit:

voor normaal gebruik is het inderdaad niet echt aan te raden, maar in specifieke gevallen is het handig.

[ Voor 15% gewijzigd door NH298 op 26-04-2004 09:46 ]

System specs


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Soultaker schreef op 26 april 2004 @ 01:44:
Dat kan gelukkig niet. Het zou een mooie boel worden als een website zomaar het contextmenu uit kon schakelijk, wat strontvervelend is voor de gebruiker. Je zult een andere interface moeten verzinnen.
Wil je voortaan iets minder ongefundeerd iets roepen :?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


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

Bosmonster

*zucht*

Het lijkt me sowieso een beter idee je interface aan te passen op het medium ipv het medium proberen aan te passen op je interface :P

Oftewel.. maak er bijvoorbeeld shift-click van oid ipv rechts.

Of enkel klik voor vlaggetje en dubbelklik voor openen..

genoeg te verzinnen :)

[ Voor 20% gewijzigd door Bosmonster op 26-04-2004 09:49 ]


  • NH298
  • Registratie: November 2002
  • Laatst online: 10-10-2021
Ik gebruik het ook alleen voor een browser die bij ons in de winkel in kiosk-mode draait, op deze manier is het makkelijk om de toegang tot het systeem te blokkeren ;)

System specs


Verwijderd

nm, hier stond onzin

[ Voor 100% gewijzigd door Verwijderd op 26-04-2004 10:32 ]


Verwijderd

Het moet kunnen, want er is laatst een feature toegevoegd waarmee ik het uit kon schakelen (uitschakelen van het effect van het script).

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Het kan zeker, een maat van me heeft het me twee weken terug laten zien dat het hem gelukt was. Ik zal hem straks even vragen als ie online komt, als dan nog geen oplossing is gepresenteerd hier.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 26 april 2004 @ 11:01:
Het moet kunnen, want er is laatst een feature toegevoegd waarmee ik het uit kon schakelen (uitschakelen van het effect van het script).
code:
1
2
3
4
5
// disable contextmenu
document.oncontextmenu = function(){return false}

// enable contextmenu
document.oncontextmenu = null;


edit:
Blijkbaar toch die function nodig

[ Voor 9% gewijzigd door BtM909 op 26-04-2004 11:32 . Reden: alcoholpercentage ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
BtM909 schreef op 26 april 2004 @ 11:08:
[...]

code:
1
2
3
4
5
// disable contextmenu
document.oncontextmenu = return false;

// enable contextmenu
document.oncontextmenu = null;
Die had ik al geprobeerd (staat ook in dat topic), maar die werkt niet
NH298 schreef op 26 april 2004 @ 09:41:
volgens mij moet dit ook in Mozilla werken (werkt iig in Firefox)
JavaScript:
1
2
3
4
5
6
7
8
9
10
document.oncontextmenu = function(){return false}
if(document.layers) {
    window.captureEvents(Event.MOUSEDOWN);
    window.onmousedown = function(e){
        if(e.target==document)return false;
    }
}
else {
    document.onmousedown = function(){return false}
}
Hey, die werkt wel! Lijkt veel op de bovenstaande, maar maakt gelukkig net dat kleine verschil uit waardoor ie wel werkt :)
Bosmonster schreef op 26 april 2004 @ 09:48:
Het lijkt me sowieso een beter idee je interface aan te passen op het medium ipv het medium proberen aan te passen op je interface :P

Oftewel.. maak er bijvoorbeeld shift-click van oid ipv rechts.

Of enkel klik voor vlaggetje en dubbelklik voor openen..

genoeg te verzinnen :)
Tja, genoeg te verzinnen, maar vergeet niet dat ik het spel probeer na te maken :)

Afijn het werkt. Many thnx. Kan ik nu de snelheid nog wat gaan verbeteren :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:13

crisp

Devver

Pixelated

In Moz/FB/FF kan je gewoon het onclick of onmousedown event cancellen; zaak is alleen om te kijken welke muisknop er is gebruikt...

Intentionally left blank


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
crisp schreef op 26 april 2004 @ 23:05:
In Moz/FB/FF kan je gewoon het onclick of onmousedown event cancellen; zaak is alleen om te kijken welke muisknop er is gebruikt...
topic niet doorgelezen zeker? :)
ik wil 'm niet cancellen, ik wil 'm afvangen zodat ik 'm ergens anders voor kan gebruiken, maar dat menu wat er bij tevoorschijnkomt zat in de weg. Het probleem was dus niet de rechtermuisknop (dat had ik al werkend), maar het menu. Afijn, er is al een werkende oplossing geboden.

Verwijderd

axioma: Crisp = goeroe
axioma: Crisp heeft in 99.9% van de gevallen gelijk

In dit geval heeft hij ook gelijk, je kan, meen ik, gewoon mousedown cancellen... Zelfde effect...

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
nogmaals: die wil ik niet cancellen!
de rechtermuisknop is een vitaal onderdeel van het spelletje. Ik wil 'm dus alleen afvangen zodat ik er een andere actie aan kan hangen (wat ik dus al lang en breed gedaan heb)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 25-05 20:56
Het cancelen is toch alleen maar een bij-effect van de implementatie van de oncontextmenu-handler, om te voorkomen dat je na het klikken alsnog het context-menu krijgt?

Dergelijke code lijkt in Mozilla en IE 6 goed te werken:
code:
1
2
3
4
<script language="javascript">
document.oncontextmenu = function() { click('rechts'); return false; };
document.onmousedown = function() { click('links'); return false; };
</script>

Probeer maar uit...

Semantisch klopt het natuurlijk niet helemaal (mousedown en contextmenu verwijzen niet expliciet naar links of rechts en ik heb ook geen idee hoe dit werkt op een Mac met maar 1 muisknop) maar voor de praktijk lijkt het me goed genoeg. Komt dit overeen met wat je bedoelde, of is er nu nog steeds iets mis? Het is mij namelijk niet helemaal duidelijk meer.

edit:
Hmz, dit werkt toch niet helemaal goed, aangezien je een onmousedown event krijg voor zowel de linker als de rechter muisknop. :/

[ Voor 41% gewijzigd door Soultaker op 27-04-2004 20:06 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:13

crisp

Devver

Pixelated

marty schreef op 27 april 2004 @ 19:49:
nogmaals: die wil ik niet cancellen!
de rechtermuisknop is een vitaal onderdeel van het spelletje. Ik wil 'm dus alleen afvangen zodat ik er een andere actie aan kan hangen (wat ik dus al lang en breed gedaan heb)
nuanceren dan: je cancelled de default action van het event; wat je daarvoor aan script processed moet je zelf weten. In de GoT tracker gebruik ik het om een eigen context menu weer te geven als er met rechts op een link wordt geklikt, in DHTML lemmings heb ik bijvoorbeeld aan alle functietoetsen andere acties gehangen - en dat werkt ook allemaal in Mozilla/FB/FF...

Intentionally left blank

Pagina: 1