簡體   English   中英

Javascript 404檢查錨標記單擊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM