Hallo in die Runde.
Ich habe ein Java Problem und hoffe auf eure Hilfe. Ich möchte auf einer Website eine Java Funktion aufrufen, ohne das ein Button gedrückt werden muss.
Konkret soll (hier zum testen aus einem Tutorial importiert) eine Stoppuhr mit Hilfe von wechselndem Variableninhalt gestartet und gestoppt werden.
Mit den zusätzlich programmierten Button funktioniert das einwandfrei. Wenn sich aber der Inhalt der Variablen "PiRAM" ändert (passiert über AJAX) soll im wesentlichen die Funktion "start()" aufgerufen werden, also die Stoppuhr gestartet werden. Ich versuche das über ein addEventListener ("change") zu machen, doch wenn sich der Variableninhalt von "PiRAM" ändert, passiert nichts. Zur Kontrolle lasse ich "start()" auch noch einmal in den Bereich "tt" schreiben, aber auch da ändert sich nichts (er bleibt also leer).
Im Internet finde ich haufenweise Anleitungen in Bezug auf den EventListener, die aber alle dann immer auf einen Button oder Focus oder Listenbereich referenzieren. Mit "change" habe ich nichts vergleichbares gefunden.
Ich hoffe, dass mir jemand helfen kann.
Die HTML
Das Java programm:
Ich habe ein Java Problem und hoffe auf eure Hilfe. Ich möchte auf einer Website eine Java Funktion aufrufen, ohne das ein Button gedrückt werden muss.
Konkret soll (hier zum testen aus einem Tutorial importiert) eine Stoppuhr mit Hilfe von wechselndem Variableninhalt gestartet und gestoppt werden.
Mit den zusätzlich programmierten Button funktioniert das einwandfrei. Wenn sich aber der Inhalt der Variablen "PiRAM" ändert (passiert über AJAX) soll im wesentlichen die Funktion "start()" aufgerufen werden, also die Stoppuhr gestartet werden. Ich versuche das über ein addEventListener ("change") zu machen, doch wenn sich der Variableninhalt von "PiRAM" ändert, passiert nichts. Zur Kontrolle lasse ich "start()" auch noch einmal in den Bereich "tt" schreiben, aber auch da ändert sich nichts (er bleibt also leer).
Im Internet finde ich haufenweise Anleitungen in Bezug auf den EventListener, die aber alle dann immer auf einen Button oder Focus oder Listenbereich referenzieren. Mit "change" habe ich nichts vergleichbares gefunden.
Ich hoffe, dass mir jemand helfen kann.
Die HTML
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="/static/jquery-1.12.3.min.js" type="text/javascript"></script>
<script src="/static/control.js" type="text/javascript"></script>
<link rel="stylesheet" href="/static/style.css">
</head>
<body>
<br/>
<span id="tt"></span>
<script>
let za = document.getElementById('PiRAM');
za.addEventListener ("change", function () {
document.getElementById('tt').innerText = "start()";
});
</script>
<input type="button" value="RAM" onClick="Send('PiRAM')" />
<span id="PiRAM"></span>
<br/>
<br/>
<div id="zeitanzeige">00:00:000</div>
<div id="button-behaelter">
<button onClick="start()">Start</button>
<button onClick="pause()">Pause</button>
<button onClick="reset()">Reset</button>
</div>
<script src="/static/stoppuhr.js"></script>
<p><div id="Log" style="text-align:left; width:100%;"> </div></p>
</body>
</html>
Das Java programm:
Java:
const anzeige = document.getElementById("zeitanzeige");
var gestoppteZeit = 0;
var pausiert = true;
var letzterDurchlauf = new Date();
function start() {
pausiert = false;
}
function pause() {
pausiert = true;
}
function reset() {
pausiert = true;
gestoppteZeit = 0;
aktualisiereAnzeige();
}
function aktualisiereZeit() {
if(pausiert === false) {
gestoppteZeit += new Date() - letzterDurchlauf;
aktualisiereAnzeige();
}
letzterDurchlauf = new Date();
setTimeout(aktualisiereZeit, 1);
}
function aktualisiereAnzeige() {
let millisekunden = gestoppteZeit % 1000;
let sekunden = Math.floor(gestoppteZeit / 1000) % 60;
let minuten = Math.floor(gestoppteZeit / 60000) % 60;
let stunden = Math.floor(gestoppteZeit / 3600000);
stunden = stunden < 10 ? "0" + stunden : stunden;
minuten = minuten < 10 ? "0" + minuten : minuten;
sekunden = sekunden < 10 ? "0" + sekunden : sekunden;
millisekunden = "000" + millisekunden;
millisekunden = millisekunden.slice(millisekunden.length - 3);
anzeige.innerHTML = minuten + ":" + sekunden + ":" + millisekunden;
}
aktualisiereZeit();