JSFiddle - React, Tailwind, and code Playground
by Cameron Bernhardt
JavaScript
var originScript = document.createElement("script");
originScript.setAttribute("type", "text/javascript");
originScript.src = "http://whateverorigin.org/get?url=" + encodeURIComponent('http://stackoverflow.com/election') + "&callback=dataLoaded";
document.body.appendChild(originScript);
function dataLoaded(data) {
if (data.status.http_code === 200) {
var candidates = [];
var parser = new DOMParser();
var doc = parser.parseFromString(data.contents, "text/html");
var posts = doc.getElementsByTagName("table")[0].children[0].children;
for (var i = 0; i < posts.length; i++) {
var post = posts[i];
var candidateInfo = post.children[1].children[0].children[1].children[0].children[0].children[1].children[0].children[3].children[0];
var candidateName = candidateInfo.textContent;
var candidateLink = "http://stackoverflow.com" + candidateInfo.href;
var score = post.children[0].children[0].children[0].children[2].textContent;
var user = {
"name": candidateName,
"link": candidateLink,
"score": score
};
candidates.push(user);
}
formatData(candidates);
}
}
var callScript = document.createElement("script");
callScript.setAttribute("type", "text/javascript");
callScript.textContent = dataLoaded.toString();
document.body.appendChild(callScript);
function formatData(data) {
var sortedData = data.sort(function (a, b) {
return b["score"] - a["score"]
});
for (var i = 0; i < sortedData.length; i++) {
document.body.innerHTML += "<p>" + (i + 1) + ". " + sortedData[i]["name"] + " (<a href='" + sortedData[i]["link"] + "'>Profile</a>): " + sortedData[i]["score"] + "</p>";
}
}