Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [HTML/Javascript] Detectie toetsaanslag (https://forum.scholieren.com/showthread.php?t=1599766)

Lord Dolphin 22-06-2007 08:37

[HTML/Javascript] Detectie toetsaanslag
 
Het volgende script heb ik ergens van internet geplukt en ontleed van alle niet-relevante code. Het doel van het script is om waar te nemen welke toetsen de website gebruiker aanslaat.

Code:

<script type="text/javascript"><!--
document.defaultAction = true;

function init() {
        var x = document.getElementById('testForm').getElementsByTagName('input');
        for (var i=0;i<x.length;i++) {
                x[i].onclick = setEvents;
        }
}

function setEvents() {
        var eventHandler = detectEvent;
        document['on'+this.id] = eventHandler;
}

function detectEvent(e) {
        var evt = e || window.event;
        alert (evt.keyCode);
        return;
}
// --></script>

<form id="testForm">
<input type="checkbox" id="keyup"> <label for="keyup">keyup</label><br>
<input type="checkbox" id="useless"> <label for="useless">no effect</label><br>
</form>

<script type="text/javascript"><!--
                init();
// --></script>

Het probleem is dat het input-veld "keyup" aangevinkt moet worden om het script te laten werken.

Mijn vraag is: Is het noodzakelijk om een <form> te hebben met een input-veld genaamd "keyup"?

Alvast heeeel erg bedankt als je hier antwoord op kunt geven!

Lord Dolphin 22-06-2007 08:47

Ben een stap verder. De "keyup" is verwijderd, maar er moet nog steeds een veld/checkbox in de <form> aangeklikt worden voordat het script werkt. Het maakt ook niet uit of de checkbox aangevinkt is of niet...

Code:

<script type="text/javascript"><!--
document.defaultAction = true;

function init() {
        var x = document.getElementById('testForm').getElementsByTagName('input');
        for (var i=0;i<x.length;i++) {
                x[i].onclick = setEvents;
        }
}

function setEvents() {
        var eventHandler = detectEvent;
        document['onkeyup'] = eventHandler;
}

function detectEvent(e) {
        var evt = e || window.event;
        alert (evt.keyCode);
        return;
}
// --></script>

<form id="testForm">
<input type="checkbox" id="naam" checked><br>
</form>

<script type="text/javascript"><!--
                init();
// --></script>

Mijn vraag is nu: Is het noodzakelijk om een veld aan te klikken in een <form> om toetsaanslag te kunnen detecteren?

ps. De code is trouwens volledig, als je hem zo in een .html bestand zet dan werkt het al.

12Trix 22-06-2007 14:07

Gebruik dan een event-handler van het document object:

Code:

<script>
function keyUp(e) {
var evt = e ? e : window.event;
alert(evt.keyCode);
}

document.onkeyup = keyUp;
</script>


Lord Dolphin 22-06-2007 22:10

Wauw! Bedankt!!


Alle tijden zijn GMT +1. Het is nu 12:59.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.