[javascript] Rechter muisklik vervangen door linker muisklik

Pagina: 1
Acties:
  • 178 views sinds 30-01-2008
  • Reageer

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 04-05 00:03
Ik heb een functie die de kliks met de rechter muisknop afvangt


code:
1
2
3
4
5
6
7
document.onmousedown = rightMouseClick;

function rightMouseClick(){
    if (event.button==2){
        alert("RECHTS GEKLIKT");
    }
}


Nu wil ik dat er op de plek van de alert automatisch een linker muisklik event uitgevoerd wordt zodat de cursor op de plek komt te staan waar mijn muis zich op het moment van de rechter muisklik bevond.

Is het mogelijk om dit te doen?
Het enigste wat ik kan vinden is hoe je de klikken kan afvangen, maar niet hoe je ze zelf kan uitvoeren.

[ Voor 3% gewijzigd door JSchut op 02-03-2005 16:09 ]

PSN jschut_82 | Xbox: JSchut82


  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 10-05 19:05
Je moet dan wel het event "linker muisknop geklikt" doorgeven aan het element / de elementen waaop de rechter muisklik origineel laatsvond... Die zal je dus moetne achterhalen en dan zijn er wel mogelijkheden dacht ik. Es zoeken...

Een functie als dispatchEvent() lijkt me prima geschikt als je eenmaal weet welk element de rechterklik kreeg:

http://www.mozilla.org/do...dom_el_ref36.html#1028419

[ Voor 30% gewijzigd door Morrar op 02-03-2005 16:56 ]


  • sdomburg
  • Registratie: Augustus 2001
  • Laatst online: 03-09-2024
Blijf van de browser(functionaliteiten) van een ander af. Ga zeker geen functies vervangen, dat werkt verwarrend en is alleen maar irritant.

Vertel dus liever waarom je dit wilt, dan kunnen we misschien een uservriendelijke oplossing bedenken :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Morrar schreef op woensdag 02 maart 2005 @ 16:51:

Een functie als dispatchEvent() lijkt me prima geschikt als je eenmaal weet welk element de rechterklik kreeg:
Je kunt bij een event simpel de target (FF) of srcElement (IE) opvragen om daar de click op uit te voeren.

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 10-05 19:05
Ok, dit scriptje werkt maar alleen in IE (Mozilla laat me niet de rechtermuisklik afvangen). Gezien je voorbeeld code vraag ik me af of je dat erg vindt. Ben het overigens eens met sdomburg: ik wordt als gebruiker niet blij van zulk soor scripts. Maar hier is de voorbeeldcode:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
    <head>
        <script language="javascript">
            function Init()
            {   oElem = document.getElementById("test");
                oElem.onmousedown = HandleClick;
            }
            
            function HandleClick()
            {   if(window.event.button == 2)
                {   oSrc = window.event.srcElement;
                    oSrc.click();
                }
            }
        </script>
    </head>
    <body onload="Init();">
    <a href="http://www.lukaskoning.nl/" id="test">test</a>
    </body>
</html>


@Andre: heb inderdaad zo'n oplossing in elkaar geknutseld. Ik leefde verder in de veronderstelling dat click() een IE-only iets was, vandaar... Overigens krijg ik het niet voor elkaar om FF de rechtermuis af te laten vangen. Wel op 100 verschillende manieren de linkerknop, maar niet de rechter :)

[ Voor 54% gewijzigd door Morrar op 02-03-2005 17:43 ]


  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 04-05 00:03
Bedankt Ik zal het straks even uitproberen!

Ik wil het niet gebruiken om de gebruiker te verwarren.
Ik heb een eigen rechtermuisknop contextmenu gemaakt in en teksteditor. Als je nu rechtermuisknop doet dan verplaatst je cursor niet naar de plek waar je geklikt heb. Nu wil ik dus met het click-event de cursor op de goede plaats zetten.

Het geeft trouwens niet dat het llen in IE werkt, want de teksteditor is namelijk zoiezo IE only :)

[ Voor 14% gewijzigd door JSchut op 03-03-2005 06:58 ]

PSN jschut_82 | Xbox: JSchut82


  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 10-05 19:05
Ehm ik vrees dat je plannen niet gaan werken met dit script dan. Volgens mij verplaatst click() de cursor nl. niet. Het geeft alleen een element een "click"-event. Dus de link wordt dan actief, maar de cursor gaat er volgens mij niet heen. Heb het niet getest hier, maar ben daar vrij zeker van. Volgens mij is het ook nie mogelijk om op een andere manier de cursor van de muis te laten verplaatsen.

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 04-05 00:03
Morrar schreef op donderdag 03 maart 2005 @ 12:41:
Ehm ik vrees dat je plannen niet gaan werken met dit script dan. Volgens mij verplaatst click() de cursor nl. niet. Het geeft alleen een element een "click"-event. Dus de link wordt dan actief, maar de cursor gaat er volgens mij niet heen. Heb het niet getest hier, maar ben daar vrij zeker van. Volgens mij is het ook nie mogelijk om op een andere manier de cursor van de muis te laten verplaatsen.
Het is wel gelukt met bovenstaande code.
De cursor verplaatst netjes naar de plek waar mijn muis zich op moment van rechtermuisknop klikken bevind

PSN jschut_82 | Xbox: JSchut82


  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 10-05 19:05
Ah ik denk dat ik je niet goed heb begrepen... Dacht dat je de *muiscursor* (het pijltje) wilde verplaatsen, maar je bedoelde de "invoercursor" (het "streepje") waarschijnlijk... Maar mooi dat het werkt iig.

Verwijderd

caret heet zo'n ding :D
Pagina: 1