<!-- Ja -->
<script src="script.js"></script>
<!-- Nein -->
<script type="text/javascript" language="JavaScript" src="script.js"></script>
<!-- HTML5 -->
<script src="script.js" async defer></script>
<!-- Inline -->
<script>
console.log('hallo');
</script>
<noscript> ... Normaler HTML-Code ... </noscript>
Element
oder Text
und bieten Funktionen für Zugriff, Traversierung und Manipulationwindow
window
.location
.reload()
.history
.back()
.forward()
.replaceState({}, "/", "/hehe")
.alert("Et boum!")
.confirm("Seite wirklich verlassen?")
.prompt("Wie ist Ihr Name?", "Alice")
.open("https://google.de", "Suche")
document
.head / .body
.contentEditable = true
.links[0].href
.cookie
.createElement()
.get*
.querySelector*
Node.nodeValue
Node.getAttribute
Node.childNodes // direkte Kinder
Node.lastChild / Node.firstChild
Node.parentNode
Node.nextSibling / Node.previousSibling
onfocus // Feld fokusiert
onblur // Feld verlassen
onchange // Feld geändert
onclick // angeklickt
ondblclick // doppelt angeklickt
onkeydown // Taste gedrückt
onkeypress // Taste gehalten
onkeyup // Taste losgelassen
onmousedown // Maustaste gedrückte
onmouseup // Maustaste losgelassen
onmousemove // Maus bewegt
onmouseover // Elements überfahren
onmouseout // Elements verlassen
onreset // Formular zurückgesetzt
onresize // Größe des Fensters geändert
onselect // Text selektiert
onsubmit // Formulars abgeschickt
onload // Datei geladen
onerror // im Fehlerfall
onunload // beim Verlassen der Seite
<!-- automatisch gewrappt -->
<button onClick="this.innerText = 'Nacht'">Tag</button>
<a href="javascript:alert(document.lastModified)">Letztes Update</a>
// ein Listener
element.onclick = function () { this.innerText = 'Nacht'; }
// mehrere Listener
element.addEventListener('click', function (event) {
this.innerText = 'Nacht';
event.stopPropagation(); // stop bubbling up
event.preventDefault(); // bubble but prevent default action
});
const input = document.querySelector('input');
if (input.value === 'alter Wert')
input.value = 'neuer Wert';
else if (input.value === 'anderer Wert')
input.disabled = true;
hallo.html?vorname=Alice&alter=42
const query = new URLSearchParams(window.location.search);
const vorname = query.get('vorname');
const alter = query.get('alter');
HTML Formular-Elemente:
button
input
textarea
select
selber zu entwickeln:
iOS Checkbox)
sessionStorage
und localStorage
bessere Cookiesgedacht
localStorage.setItem('username', 'Alice');
const username = localStorage.getItem('username');
alert(`Willkommen zurück ${username}`);
<pre></pre>
canvas { width: 100%; }
var out = document.querySelector('pre');
var success = function (position) {
var msg = 'latitude: ' + position.coords.latitude + ', longitude: ' + position.coords.longitude;
out.innerHTML += msg + '<br />';
};
// navigator.geolocation.watchPosition(success);
<pre></pre>
var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery;
var pre = document.querySelector('pre');
function log (message) { pre.innerHTML += message + '<br />'; }
function logBattery (battery) {
log('Battery level: ' + battery.level);
log('Battery charging: ' + battery.charging);
log('Battery discharging time: ', battery.dischargingTime);
battery.addEventListener('chargingchange', function() {
log('Battery chargingchange event: ' + battery.charging);
}, false);
}
if (navigator.getBattery) {
navigator.getBattery().then(logBattery, function() {
log('There was an error while getting the battery state.');
});
}
else if (battery) { logBattery(battery); }
else { log('Shame! The Battery API is not supported on this platform.'); }
<input type="text" value="Welt">
<button>Show notification</button>
var button = document.querySelector('button');
var input = document.querySelector('input');
var notify = function() {
var notification = new Notification('Hallo', { body: input.value });
notification.onclick = function() { alert('Hihi'); }
};
button.onclick = function(){
if (Notification.permission === 'granted') notify();
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
if (permission === 'granted') notify();
});
}
};
<video autoplay></video>
<script>
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
</script>
var video = document.querySelector('video');
var constraints = {audio: false, video: true};
var success = function (stream) {
try {
video.srcObject = stream;
} catch (error) {
video.src = window.URL.createObjectURL(stream);
}
};
// navigator.getUserMedia(constraints, success, function() { console.log('error'); });
<canvas></canvas>
canvas { width: 100%; }
var canvas = document.querySelector('canvas');
var context = canvas.getContext('2d');
/* Male ein Rechteck */
context.fillStyle='skyblue';
context.fillRect(50, 50, 100, 100);
/* Male einen Kreis */
context.fillStyle='hotpink';
context.beginPath();
context.arc(100, 100, 30, 0, Math.PI*2, true);
context.closePath();
context.fill();