JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<a href="https://jekyllrb.com/">Jekyll blog</a>
</body>
<script type="text/javascript">
//get all links on the webpage
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
(function (i) {
// for every link, make a request using its href property and fetch its html
var request = makeHttpObject();
request.open("GET", links[i].href, true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4){
//on request received, process the html and set the title parameter
const doc = new DOMParser().parseFromString(request.responseText, "text/html");
const title = doc.querySelectorAll('title')[0];
if(title)links[i].setAttribute("title",title.innerText)
else links[i].setAttribute("title","something went wrong")
}
};
})(i);
}
//helper function to create requests
function makeHttpObject() {
try {return new XMLHttpRequest();}
catch (error) {}
try {return new ActiveXObject("Msxml2.XMLHTTP");}
catch (error) {}
try {return new ActiveXObject("Microsoft.XMLHTTP");}
catch (error) {}
throw new Error("Could not create HTTP request object.");
}
</script>
</html>