Hvordan bruke Java Document Hendelses Object å programmere med HTML

July 27  by Eliza

Dokumenthendelses objekt er unikt ved at det lar deg lage andre hendelser i Javascript. Du bruker Createe () metode for å opprette en hendelse som kunne simulere noe sånt som et museklikk. Selv om dette objektet gir bare en metode, det er en kraftig metode. Den eneste måten å virkelig forstå dette objektet er å se den i aksjon. Følgende eksempel utfører tre oppgaver:

  • Gir et middel for å generere en simulert klikk
  • Legger en hendelseshåndterer som hindrer standardvalg for å simulere klikk
  • Fjerner hendelseshåndterer som hindrer standardvalg for å simulere klikk

Dette er en noe avansert eksempel, men det er også utrolig nyttig kode fordi du kan bruke den til å legge automatisering til programmene som vil være nyttig for mindre erfarne brukere.

fungere SimulateClick ()
{
// Lag hendelsen.
Var ClickEvent = document.createEvent ("MouseEvents");

// Konfigurer hendelsen.
ClickEvent.initMouseEvent (
"Klikk", // Event type
sant, Kan // bruke boble teknikk?
sant, // Er dette arrangementet cancelable?
vindu, // View, bør alltid være vinduet.
0, // Antall museklikk.
0, // Screen X koordinere
0, // Screen Y koordinere
0, // Client X koordinere
0, // Client Y koordinere
falsk, // Ctrl-tasten nede?
falsk, // Alt-tasten nede?
falsk, // Shift-tasten nede?
falsk, // Meta-tasten nede?
0, // Antall knappen klikkes.
null); // Relatert mål

// Skaff en referanse til objektet.
Var TestCheck = document.getElementById ("chkTest");

// Utfør klikk og spille om klikket
// Ble avbrutt av en annen behandler.
Var Etterfølger = TestCheck.dispatchEvent (ClickEvent);

// Vise resultatet av simuleringen skjermen.
if (Etterfølger)
{
alert ("The klikk lyktes!");
}
annet
{
alert ("Klikket ble avlyst!");
}
}

Koden begynner med å skaffe en referanse til målet arrangementet objektet, som er MouseEvents i dette tilfellet. Den initMouseEvent () funksjonen tar en rekke argumenter - som alle er pålagt å gjøre eksemplet arbeid. Sjekk her for å lese mer om argumenter.

Etter kode oppretter en hendelse, er det på tide å få en henvisning til den kontroll som vil bruke hendelsen. I dette tilfellet bruker eksempelet en avkrysningsboks som heter chkTest. Å utstede hendelsen, kaller programmet dispatchEvent () med arrangementet, ClickEvent, som argument.

Denne loven branner (utgaver) arrangementet. Returverdien bestemmer om arrangementet lyktes. Når du bruker standard lytter og handler, er det i boksen enten aktivert eller deaktivert, avhengig av sin tidligere tilstand.

Koden avsluttes ved å bestemme avkastningen status av Lyktes. Hvis ingenting hindrer hendelsen fra å lykkes, Etterfølger er sant, og det første alert () viser på skjermen. Ellers ser du den andre alert () melding. Selvfølgelig, spørsmålet nå er hvordan man skal hindre standardhandlingen oppstår. Følgende kode utfører denne oppgaven:

funksjon PreventDefault (hendelse)
{
// Hindre standardhandlingen.
event.preventDefault ();
}
funksjon AddHandler ()
{
// Motta objekt referanse.
Var TestCheck = document.getElementById ("chkTest");

// Legg hendelsesbehandling.
TestCheck.addEventListener (
"Klikk", // Type hendelse
PreventDefault, // Navn på hendelsen lytteren.
false); // Bruk fangst teknikk?
}
funksjon RemoveHandler ()
{
// Motta objekt referanse.
Var TestCheck = document.getElementById ("chkTest");

// Legg hendelsesbehandling.
TestCheck.removeEventListener (
"Klikk", // Type hendelse
PreventDefault, // Navn på hendelsen lytteren.
false); // Bruk fangst teknikk?
}

Når PreventDefault () funksjonen er aktiv, aksepterer det en hendelse objekt som input. Denne hendelsesbehandleren stopper automatisk standardhandlingen skjer ved å ringe preventDefault (). Sjekken ikke er merket, og Etterfølger er satt til false når dette skjer.

Imidlertid er PreventDefault () -funksjonen ikke er aktiv ved begynnelsen. For å gjøre det aktivt, programmet kaller AddHandler (), som legger en hendelse lytteren med addEventListener () -funksjonen til boksen, chkTest. Denne tilnærmingen gjør det mulig å finne ut om nettleseren kan bruke utløser teknikk for å arbeide med flere event handlers. For å fjerne hendelseshåndterer, programmet kaller RemoveHandler (), som reverserer prosessen ved å ringe removeEventListener ().