Hallo,
ich werde nach dem einloggen auf eine JSP weite weiter geleitet. Auf dieser Seite sollte mein JavaScript funktion elemente laden. Allerdings tritt da ein Fehler auf. Wenn ich dann auf refresh gehe wird erst die seite richtig gefüllt.
So sieht mein event listener aus:
window.addEventListener("DOMContentLoaded", pupulateDropDown);
Ich habe auch mit timeout versucht die Funktion verspätet auszuführen, damit die Seite zeit hat zum laden aber das hat zur nichts geführt.
Wie kriege ich hin, dass wenn ich vom Server auf die JSP seite weiter geleitet werde die function richtig ausgeführt wird?
Ich habe auf video aufgenommen was genau passiert.
https://imgur.com/cQcH7FO
Hier ist auch mein da es im video nicht wirklich zu erkennen ist:
function pupulateDropDown() {
//
console.log("some message")
var servletURL = "./KategorienHolen"
let xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.onreadystatechange = function () {
if (xmlHttpRequest.readyState === 4 && xmlHttpRequest.status === 200) {
console.log(xmlHttpRequest.responseText);
let katGetter = JSON.parse(xmlHttpRequest.responseText);
JSON.stringify(katGetter);
var i;
for(i = 0; i <= katGetter.length -1; i++){
console.log(katGetter[i].id);
console.log(katGetter[i].kategorie);
console.log(katGetter[i].oberkategorie);
if (katGetter[i].oberkategorie === "B") {
document.getElementById("BKat").innerHTML += "<a href=" + "DisplayKlamotten" + "?searchfor=" + katGetter[i].kategorie + ">" + katGetter[i].kategorie + "</a></br>";
// hier tritt der fehler auf
} else if (katGetter[i].oberkategorie === "S") {
document.getElementById("SKat").innerHTML += "<a href=" + "DisplayKlamotten" + "?searchfor=" + katGetter[i].kategorie + ">" + katGetter[i].kategorie + "</a></br>";
} else if (katGetter[i].oberkategorie ==="A") {
document.getElementById("ACat").innerHTML += "<a href=" + "DisplayKlamotten" + "?searchfor=" + katGetter[i].kategorie + ">" + katGetter[i].kategorie + "</a></br>";
}
// document.getElementsByClassName("innerDiv").innerHTML = "<a href=" + "DisplayKlamotten" + "?=" + katGetter.kategorie + ">" + katGetter.kategorie + "</a>";
// document.getElementById("test123").innerHTML = "<a href=" + "DisplayKlamotten" + "?searchfor=" + katGetter.kategorie + ">" + katGetter.kategorie + "</a>";
}
}
};
xmlHttpRequest.open("GET", servletURL, true);
xmlHttpRequest.send();
}