#javascript #html #google-chrome
#javascript #HTML #google-chrome
Вопрос:
Мне нужно проверить, существует ли URL-адрес, и перенаправить пользователя, если это не так, мы поддерживаем различные браузеры (IE, Chrome, Firefox и т. Д.), Поэтому решение должно поддерживать все из них.
Комментарии:
1.
I need to check if a path exists
Что это значит? Путь к файлу? URL-адрес?2. Мне нужно проверить, существует ли URL-адрес
Ответ №1:
В заголовке вашей страницы поместите этот код javascript:
<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>
Это позволяет вам проверить, существует ли страница на вашем сервере, и перенаправить на нее, если она существует. Если страница не существует, код javascript ничего не делает и позволяет текущей странице загружаться.
Редактировать: исправлены ошибки и переписана часть кода для ясности, внешнего вида и практичности.
Комментарии:
1. возможно, я неправильно объяснил себя, у меня есть клиенты, получающие доступ к моему веб-сайту, я хочу перенаправить в другое место на моем сервере (т. Е. .. MyOtherFolderindex.html ) но сначала я хочу убедиться, что это относительное местоположение URL существует, если оно существует, я хочу перенаправить их в это местоположение, в противном случае на местоположение по умолчанию.
2. к сожалению, я никогда не получаю readystate == 4, у меня есть частичный URL-адрес, который существует на самом деле.
3. Какое местоположение файла вы пытаетесь проверить? Пожалуйста, покажите каталоги и все.
4. Я использую относительный путь, такой как ‘..Mobileindex.html ‘
5. Не похоже. В основном из-за предотвращения междоменной атаки скриптов.