HTML DOM umožňuje JavaScriptu reagovat na události HTML:
JavaScript lze spustit, když dojde k události, například když uživatel klikne na prvek HTML.
Chcete-li spustit kód, když uživatel klikne na prvek, přidejte kód JavaScript do atributu události HTML:
onclick=JavaScript
Příklady událostí HTML:
Když uživatel klikne myší
Když se načte webová stránka
Po načtení obrázku
Když se myš pohybuje nad prvkem
Když se změní vstupní pole
Při odeslání formuláře HTML
Když uživatel stiskne klávesu
V tomto příkladu se obsah prvku <h1>
změní, když na něj uživatel klikne:
<!DOCTYPE html>
<html>
<body>
<h1 onclick="this.innerHTML = 'Ooops!'">Click on this text!</h1>
</body>
</html>
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript HTML Events</h2>
<h2 onclick="this.innerHTML='Ooops!'">Click on this text!</h2>
</body>
</html>
V tomto příkladu je funkce volána z obsluhy události:
<!DOCTYPE html>
<html>
<body>
<h1 onclick="changeText(this)">Click on this text!</h1>
<script>
function changeText(id) {
id.innerHTML = "Ooops!";
}
</script>
</body>
</html>
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript HTML Events</h2>
<h2 onclick="changeText(this)">Click on this text!</h2>
<script>
function changeText(id) {
id.innerHTML = "Ooops!";
}
</script>
</body>
</html>
Chcete-li přiřadit události k prvkům HTML, můžete použít atributy událostí.
Přiřaďte událost onclick prvku tlačítka:
<button onclick="displayDate()">Try it</button>
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript HTML Events</h2>
<p>Click the button to display the date.</p>
<button onclick="displayDate()">The time is?</button>
<script>
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
<p id="demo"></p>
</body>
</html>
Ve výše uvedeném příkladu bude provedena funkce s názvem displayDate
po kliknutí na tlačítko.
HTML DOM vám umožňuje přiřadit události k prvkům HTML pomocí JavaScriptu:
Přiřaďte událost onclick prvku tlačítka:
<script>
document.getElementById("myBtn").onclick = displayDate;
</script>
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript HTML Events</h2>
<p>Click "Try it" to execute the displayDate() function.</p>
<button id="myBtn">Try it</button>
<p id="demo"></p>
<script>
document.getElementById("myBtn").onclick = displayDate;
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
</body>
</html>
Ve výše uvedeném příkladu je funkce s názvem displayDate
přiřazena prvek HTML s id="myBtn"
.
Funkce bude provedena po kliknutí na tlačítko.
Události onload
a onunload
se spouštějí, když uživatel vstoupí na stránku nebo ji opustí.
Událost onload
lze použít ke kontrole typu prohlížeče a verze prohlížeče návštěvníka a na základě informací načíst správnou verzi webové stránky.
Události onload
a onunload
lze použít ke zpracování souborů cookie.
<body onload="checkCookies()">
Zkuste to sami →
<!DOCTYPE html>
<html>
<body onload="checkCookies()">
<h2>JavaScript HTML Events</h2>
<p id="demo"></p>
<script>
function checkCookies() {
var text = "";
if (navigator.cookieEnabled == true) {
text = "Cookies are enabled.";
} else {
text = "Cookies are not enabled.";
}
document.getElementById("demo").innerHTML = text;
}
</script>
</body>
</html>
Událost onchange
se často používá v kombinaci s ověřením vstupních polí.
Níže je uveden příklad použití onchange. upperCase()
funkce bude volána, když uživatel změní obsah vstupního pole.
<input type="text" id="fname"
onchange="upperCase()">
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript HTML Events</h2>
Enter your name: <input type="text" id="fname" onchange="upperCase()">
<p>When you leave the input field, a function is triggered which transforms the input text to upper case.</p>
<script>
function upperCase() {
const x = document.getElementById("fname");
x.value = x.value.toUpperCase();
}
</script>
</body>
</html>
Události onmouseover
a onmouseout
lze použít ke spuštění funkce, když uživatel najede myší. nad nebo mimo element HTML:
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<div onmouseover="mOver(this)" onmouseout="mOut(this)"
style="background-color:#D94A38;width:120px;height:20px;padding:40px;">
Mouse Over Me</div>
<script>
function mOver(obj) {
obj.innerHTML = "Thank You"
}
function mOut(obj) {
obj.innerHTML = "Mouse Over Me"
}
</script>
</body>
</html>
Události onmousedown
, onmouseup
a onclick
jsou všechny části a kliknutí myší. Nejprve po kliknutí na tlačítko myši dojde k události onmousedown spustí se, když stisknete tlačítko myši je uvolněna, spustí se událost onmouseup a nakonec, když je kliknutí myší dokončeno, je spuštěna událost onclick.
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<div onmousedown="mDown(this)" onmouseup="mUp(this)"
style="background-color:#D94A38;width:90px;height:20px;padding:40px;">
Click Me</div>
<script>
function mDown(obj) {
obj.style.backgroundColor = "#1ec5e5";
obj.innerHTML = "Release Me";
}
function mUp(obj) {
obj.style.backgroundColor="#D94A38";
obj.innerHTML="Thank You";
}
</script>
</body>
</html>
onmousedown a onmouseup
<!DOCTYPE html>
<html>
<head>
<script>
function lighton() {
document.getElementById('myimage').src = "bulbon.gif";
}
function lightoff() {
document.getElementById('myimage').src = "bulboff.gif";
}
</script>
</head>
<body>
<img id="myimage" onmousedown="lighton()" onmouseup="lightoff()" src="bulboff.gif" width="100" height="180" />
<p>Click mouse and hold down!</p>
</body>
</html>
Změňte obrázek, když uživatel podrží tlačítko myši.
načíst
<!DOCTYPE html>
<html>
<head>
<script>
function mymessage() {
alert("This message was triggered from the onload event");
}
</script>
</head>
<body onload="mymessage()">
</body>
</html>
Po dokončení načítání stránky zobrazit okno s upozorněním.
zaměření
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction(x) {
x.style.background = "yellow";
}
</script>
</head>
<body>
Enter your name: <input type="text" onfocus="myFunction(this)">
<p>When the input field gets focus, a function is triggered which changes the background-color.</p>
</body>
</html>
Změňte barvu pozadí vstupního pole, když je aktivní.
Události myši
<!DOCTYPE html>
<html>
<body>
<h1 onmouseover="style.color='red'"
onmouseout="style.color='black'">
Mouse over this text</h1>
</body>
</html>
Změňte barvu prvku, když na něj přejedete kurzorem.
Seznam všech událostí HTML DOM naleznete v naší úplné Referenční příručce objektu událostí HTML DOM.