Reputation: 2245
I need to check if a URL exists and redirect a user if it's not, we support various browsers (IE, Chrome, Firefox etc...) so the solution needs to be able to support all of those.
Upvotes: -1
Views: 29501
Reputation: 1311
In the header of your page, place this javascript code:
<script type="text/javascript">
// Creates an object which can read files from the server
var reader = new XMLHttpRequest();
var checkFor = "fileToCheckFor.html";
// Opens the file and specifies the method (get)
// Asynchronous is true
reader.open('get', checkFor, true);
//check each time the ready state changes
//to see if the object is ready
reader.onreadystatechange = checkReadyState;
function checkReadyState() {
if (reader.readyState === 4) {
//check to see whether request for the file failed or succeeded
if ((reader.status == 200) || (reader.status == 0)) {
//page exists -- redirect to the checked
//checked for page
document.location.href = checkFor;
}
else {
//does nothing and quits the function
//if the url does not exist
return;
}
}//end of if (reader.readyState === 4)
}// end of checkReadyState()
// Sends the request for the file data to the server
// Use null for "get" mode
reader.send(null);
</script>
Edit: Fixed bugs and rewrote some of the code for clarity, appearance, and practicality.
Upvotes: 7