2014-06-26 48 views
0

有沒有辦法當我重新加載頁面的JavaScript有回退如果目標頁面不可用?location.href和後備頁面不可用

例子:

我做

location.href = 'http://www.google.com'

但也許谷歌已關閉(或可能的網址不存在了或者是畸形的,等...),並在此情況下,我想避免重新加載。那可能嗎?

+2

一個棘手的解決方案是之前做一個AJAX請求,如果它成功,然後導航到url – christof13

+0

如果它位於同一個域上,則可以使用使用Ajax BEFORE的HEAD請求location.href thing ..!如果它不在同一個域中,那麼我不認爲它可以完成。 –

+0

我正在尋找任何域的解決方案(如果可能的話)。 –

回答

1

您無法識別訪客離開您的頁面後會發生什麼。這是一件好事。也許你在重定向之前檢查,如果你可以連接(客戶端)與JavaScript,如果網站是可用的,然後執行你的重定向。但是你必須在重定向之前檢查,但不能在後退之後檢查。

0

如果是在同一個域,你可以使用Ajax使用HEAD請求之前location.href,如:

function doStuff() { 
    var xhr = new XMLHttpRequest(); 
    xhr.onreadystatechange = function() { 
    if(this.readyState == 4 && this.status == 200) { 
     //page exists 
     location.href = "your_url_of_some_page";    
    } 
    xhr.open("HEAD", address); 
    xhr.send(); 
} 
//call the function 
doStuff();