JavaScript: .replace не работает - нестандартный случай
Нет, на этот раз дело не в том, что я не объявил переменную перед выражением с .replace . :)
Если не вдаваться в детали, зачем мне это, то задача следующая: вне зависимости от того, на локольном или удалённом сервере находится сайт, сохранить в значение переменной имя текущего файла без разрешения. Вот такой код: var fileName = location.href.split("/").slice(-1); // Значение проверил, выводит, например, "info.php" if (fileName == "#" || fileName == "") {var fileName="index";} // Если страница - начальная else{ //alert(fileName); // позиция 1 fileName = fileName.replace(/\.php$/i,''); alert(fileName); // позиция 2 } Если мы находимся не на главной странице (index.php), то мы попадаем в else. Я убедился, что это работает через alert(fileName); в позиции 1. Однако в позиции 2 - уже не работает, т. е. окна нет вообще. Никаких сообщений об ошибке. Такой код: fileName="info.php"; // на этот раз введём имя файла вручную fileName=fileName.replace(/\.php$/i,''); // 1 в 1 с предыдущим кодом alert(fileName); я проверил на jsfiddle; там всё работает. В чём может быть дело? |
ну суть в том что в fileName у тебя object:
проверь так: //alert(typeof fileName); // позиция 1 а replace все же к строке) |
используй вместо alert - console.log()
Там сразу видно что у тебя: ['index.php'] следовательно: var fileName = location.href.split("/").slice(-1)[0]; решит проблему |
Спасибо, всё действительно работает!
|
Часовой пояс GMT +3, время: 18:41. |