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, время: 11:24. |