let load_url = "https://exmods.org/load?board=test1&count=10&start=0"; function build_board() { let leaderboard = document.getElementById("leaderboard") let leaderboard_container = document.getElementById("leaderboard-container") let tmpEntry = {ID: -42, Rank:"?", PlayerURL: "#", PlayerName: "Loading...", Score:">9000"} let errEntry = build_entry(tmpEntry) leaderboard.appendChild(errEntry) setTimeout(() => {document.getElementById("nameAnchor-42").innerText = "Something went wrong :(";}, 4000) // 5s fetch(load_url).then( (response) => { if (!response.ok || (response.status) != 200) { document.getElementById("nameAnchor-42").innerText = "Something went wrong :(" return } errEntry.style.display = "none" response.json().then( (result) => { leaderboard.removeChild(errEntry) for (entry of result.Items) { let newEntry = build_entry(entry) // end leaderboard.appendChild(newEntry) } } ) } ) } function build_entry(entry) { let newEntry = document.createElement("div") newEntry.setAttribute("id", "entry"+entry.ID) newEntry.classList.add("board-entry") // rank let rankEntry = document.createElement("span") rankEntry.setAttribute("id", "rank"+entry.ID) rankEntry.innerText = entry.Rank rankEntry.classList.add("board-rank") newEntry.appendChild(rankEntry) // name let nameElem = document.createElement("span") nameElem.setAttribute("id", "name"+entry.ID) nameElem.classList.add("board-name") let nameAElem = document.createElement("a") nameAElem.setAttribute("id", "nameAnchor"+entry.ID) nameAElem.classList.add("board-name-a") nameAElem.href = entry.PlayerURL nameAElem.innerText = entry.PlayerName nameElem.appendChild(nameAElem) newEntry.appendChild(nameElem) // score let scoreElem = document.createElement("span") scoreElem.setAttribute("id", "score"+entry.ID) scoreElem.classList.add("board-score") scoreElem.innerText = entry.Score newEntry.appendChild(scoreElem) return newEntry }