Avatar billede spectual Nybegynder
21. marts 2001 - 16:57 Der er 9 kommentarer og
2 løsninger

ALT tasten & Objekt ude af syne

Hej alle.

2 spørgsmål slået sammen til 1.

1) Er der nogen der kan finde løsning til at forhindre, at Alt tasten aktiverer Internet Explorerens menuer?*

2) Er der nogen, der kan finde en løsning til at afgøre om et objekt (med statisk position) ikke er synligt?
(dvs. udenfor den del man kan se af en lang hjemmeside).

* Følgende er et skript til at teste for ALT tasten:

<html><body>
<script language=\"JavaScript\">
document.onkeydown = function alttast (e) { kc=event.keyCode;
if (kc==18) { alert (\'Hey. Du trykkede på ALT\'); } }
</script>
</body></html>
Avatar billede nute Nybegynder
21. marts 2001 - 17:01 #1
1) tror jeg knappest du kan gjøre, for denne funksjonaliteten er programmert inn i OS sin kjerne

2) mener du om fx et layer ligger utenfor browservinduet ?

/nute
Avatar billede netsrac Praktikant
21. marts 2001 - 17:20 #2
1:
<script>

function CheckKeys(){
  var key = event.keyCode;
  if (key == 18){
    // Her laver du noget andet, f.eks. skifte til en anden side

    // Og så annullerer vi
    event.cancelBubble = true;
    event.keyCode = 0;
    return false;
  }
}
document.onkeydown = CheckKeys;

</script>

Avatar billede dansermeddhtml Nybegynder
21. marts 2001 - 20:39 #3
netsrac>> <løftet pegefinger>
jojo, men som nute siger ligger denne funktionalitet uden for browseren, det vil sige at du får forhindret scripting events på window objektet (og kun det) i at køre, men browseren vil jo stadigvæk fange eventen - du burde da teste sådan noget inden du skyder vildt omkring dig, eller i det mindste skrive at det kun er et gær(!)</løftet pegefinger>
Mht. (2) kan det gøres ved at først tjekke objektets visibility og display properties, dernæst undersøge om dets position er indenfor browservinduets synlige område, og sidst iterere igennem samtlige sidens lag og checke deres position, z-index, visibility og displays...
Det er vist lidt af en opgave...
alternativt kan du, fra IE4 og op, prøve et hack a\'la
if(obj==document.elementFromPoint(obj.offsetX,obj.offsetY)) objIsvisible=true;
Det vil så kun betyde at elementets øverste, venstre hjørne er synligt, men du kan jo lege lidt med det :)
Avatar billede netsrac Praktikant
21. marts 2001 - 20:45 #4
dansermeddhtml >> Hm...det er måske ikke X browser, men dette virker da i IE5

<script>

function CheckKeys(){
  var key = event.keyCode;
  if (key == 18){
    // Her laver du noget andet, f.eks. skifte til en anden side
    alert(\'hej\');
    // Og så annullerer vi
    event.cancelBubble = true;
    event.keyCode = 0;
    return false;
  }
}
document.onkeydown = CheckKeys;

</script>

Hvorfor alle de pegefingre ?
Avatar billede dansermeddhtml Nybegynder
21. marts 2001 - 20:49 #5
næ, det virker da ikke i ie5... det kan være at du er kommet til at misforstå spørgsmålet :-)
\"1) Er der nogen der kan finde løsning til at forhindre, at Alt tasten aktiverer Internet Explorerens menuer?* \"
Avatar billede netsrac Praktikant
21. marts 2001 - 20:56 #6
Ja det virker altså i IE5 her, har du overhovedet prøvet scriptet ?
Avatar billede dansermeddhtml Nybegynder
21. marts 2001 - 21:01 #7
jo, jeg har da prøvet det.. Altså lad os lige blive enige om hvad det er spørgsmålet handler om; som jeg læser det skal scriptet forhindre at browserens menubar får fokus - menubaren får jo fokus på trods af dette script, som du kan se ved at første menupunkt (\"File\" eller \"Filer\") får en kant omkring og \"F\"\'et (i min browser) bliver understreget... min browser hedder 5.00.2920.0000 til efternavn; hvad med din?
Avatar billede netsrac Praktikant
21. marts 2001 - 21:07 #8
Hm..min er sørme en 5.50, men anyway, hvis man laver en popup som jeg har lavet i det andet eksempel mister baren fokus igen.
Så kan man jo f.eks. sætte fokus på et tekstfelt eller et andet element på siden.
Avatar billede dansermeddhtml Nybegynder
21. marts 2001 - 21:10 #9
OK - problemet var at jeg havde prøvet det uden alerten; det er den der forhindrer at menubaren får fokus; ikke cancelBubble, event.keyCode, return false eller noget andet; pointen er vel at browserens alert og confirm-bokse er objekter der kan kaldes fra script, men hører under browseren selv og ikke indholdet af den - det vil så sige at man skal finde en tingest med tilsvarende funktionalitet der bare ikke generer brugeren helt vildt...
Avatar billede spectual Nybegynder
21. marts 2001 - 22:37 #10
Dit eksempel virker ikke tilfredstillende, netsrac.

Det eneste jeg kan få det til at virke med er en alertbox, confirmbox, popup vindue og ved at lave fejl.

Problemet er helt specifikt at dette skript ikke virker ordentligt:

<script language=\"JavaScript\">

function fozus () {
alert (\'test\');
}

var alt = false;

function CheckKeys(){
  var key = event.keyCode;
  if (key == 18){
    alt=true;document.title = alt;
    return false;
  }
}

function CheckKeys2(){
  var key = event.keyCode;
  if (key == 18){
    alt=false;document.title = alt;
    return false;
  }
}

document.onkeyup = CheckKeys2;
document.onkeydown = CheckKeys;
</script>
Avatar billede spectual Nybegynder
23. marts 2001 - 09:39 #11
et svar
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