Avatar billede kimborg Nybegynder
14. januar 2006 - 19:10 Der er 7 kommentarer og
1 løsning

Hemmelig side - CTRL + klik

Hey

Jeg er ved at lave ny side, hvor der bare skal være et billede og et specialtegn (π). Når man holder musen hen over specialtegnet sker der intet, men hvis man holder CTRL nede og klikker kommer man til en "hemmelig" side (lissom i The Net ;O)), har prøvet flere scripts, men har ikke fundet et som virker, håber nogle kan hjælpe.
Avatar billede sth Novice
14. januar 2006 - 23:01 #1
nedenstående kode kan ved et tryk på tasten "s" sende dig til en hemlig side

<script language="JavaScript1.2">

/*
Home Hot Key Script-
© Dynamic Drive (www.dynamicdrive.com)
For full source code, installation instructions,
100's more DHTML scripts, and Terms Of
Use, visit dynamicdrive.com
*/

var hotkey=115
var destination="http://www.dynamicdrive.com"
if (document.layers)
document.captureEvents(Event.KEYPRESS)
function backhome(e){
if (document.layers){
if (e.which==hotkey)
window.location=destination
}
else if (document.all){
if (event.keyCode==hotkey)
window.location=destination
}
}
document.onkeypress=backhome

</script>


Hvis du så vil finde ud af hvad Ctrl+k er kan du med fordel se dette spørgsmål: http://www.eksperten.dk/spm/10286
se svar fra olebole 25/01-2000 10:02:34
da han der viser koden til et lille script der kan give dig key nummeret på de forskellige taster (også Ctrl+k eller hvad du nu vælger)
Avatar billede kimborg Nybegynder
15. januar 2006 - 12:03 #2
Tak, men jeg vil helst bare skulle holde ctrl nede samtidig med at jeg bruger venstreklik, ikke noget bogstav eller tal. Kan det også lade sig gøre?
Avatar billede sth Novice
15. januar 2006 - 17:44 #3
muligvis, jeg ved det ikke. jeg har selv lige brugt ovenstående kode, ellers er JavaScript ikke lige mit område.
Avatar billede olebole Juniormester
15. januar 2006 - 20:06 #4
<ole>

Du kan ikke direkte aftaste, om 'Ctrl' er nedtrykket på et musseklik - så du er nødt til at gå en lille omvej  :)
Du kan sætte en variabel til true, når brugeren trykker 'Ctrl' ned - og sætte den til false, når brugeren slipper tasten. Så kan du teste på variablen, når der klikkes:

<script type="text/JavaScript">
var ctrl = false;
document.onkeydown = function(e) {
    e = e ? e : window.event;
    if (e.ctrlKey) ctrl = true;
}
document.onkeyup = function() {
    ctrl = false;
}
function testForCtrl() {
    if (ctrl) location.href = "http://www.google.dk";
}
</script>

<span onclick="testForCtrl()">&pi;</span>

/mvh
</bole>
Avatar billede kimborg Nybegynder
15. januar 2006 - 21:31 #5
Perfekt!

Kan man lave så mussemarkøren ændres til en "klikkehånd" når musen er det rigtige sted (med ctrl i bund naturligvis)

Smid lige et svar, så du kan få nogle point.

Takker
Avatar billede olebole Juniormester
15. januar 2006 - 22:16 #6
<script type="text/JavaScript">
var ctrl = false;
document.onkeydown = function(e) {
    e = e ? e : window.event;
    if (e.ctrlKey) ctrl = true;
}
document.onkeyup = function() {
    ctrl = false;
}
function testForCtrl() {
    if (ctrl) location.href = "http://www.google.dk";
}
function setCursor(oElm) {
    oElm.style.cursor = (ctrl)? "pointer" : "default";
}
</script>

<span onclick="testForCtrl()" onmousemove="setCursor(this)">&pi;</span>

Umiddelbart kunne man måske undre sig over, jeg har valgt 'onmousemove' i stedet for 'onmouseover' og 'onmouseout'.
Årsagen er, at hvis brugeren trykker 'Ctrl' ned, mens cursoren er over elementet, vil cursoren skifte udseende, så snart musen bevæges. Det vil ikke være nødvendigt at forlade elementet - og derefter lave mouseover igen - som det ville, hvis jeg havde anvendt de to andre events.

- og selvtakker  ;o)
Avatar billede olebole Juniormester
15. januar 2006 - 22:25 #7
- og så er det lidt ulogisk, at jeg nu har skrevet den ternære operator med to forskellige syntakser  :o|
    e = e ? e : window.event;
- og:
    oElm.style.cursor = (ctrl)? "pointer" : "default";

    oElm.style.cursor = ctrl ? "pointer" : "default";
- er det samme som:
    oElm.style.cursor = (ctrl)? "pointer" : "default";

- og det samme som:
    if (ctrl) {
        oElm.style.cursor = "pointer";
    } else {
        oElm.style.cursor = "default";
    }

Normalt bruger jeg selv syntaksen uden parenteser, men prøver at skrive med parenteser på Eksperten - da det måske er lidt lettere at læse  :)
Avatar billede kimborg Nybegynder
15. januar 2006 - 22:25 #8
Endnu engang.. Perfekt! ;O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester