[英]Javascript 404 check on anchor tag click
我需要實現僅JavaScript的解決方案,該解決方案將覆蓋默認的href行為,請檢查href位置是否存在,然后重定向到該位置或404.html。 到目前為止,我想出了這個:
function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
document.onreadystatechange = function()
{
var anchorElements = document.getElementsByTagName('a');
for (var i in anchorElements)
anchorElements[i].onclick = function()
{
if (UrlExists(this.href)) {window.location=this.href; }
else {window.location='404.html'=;}
return false;
}
}
但是,如果UrlExists()
,則默認行為不會被覆蓋。 有任何想法嗎?
編輯:404檢查工作,並且所有鏈接都在同一個域上非jQuery解決方案也是首選。
// UrlExists函數是從Trip和jAndy復制而來
感謝RobM。 和Script47指出preventDefault是本機函數:
function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
document.onreadystatechange = function()
{
var anchorElements = document.getElementsByTagName('a');
for (var i in anchorElements)
anchorElements[i].onclick = function(th)
{
th.preventDefault();
if (UrlExists(this.href)) { window.location=this.href; }
else {window.location='404.html';}
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.