Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.07.2016, 08:35
Новичок на форуме
Отправить личное сообщение для -_Gleb_- Посмотреть профиль Найти все сообщения от -_Gleb_-
 
Регистрация: 13.07.2016
Сообщений: 3

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; там всё работает.

В чём может быть дело?
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2016, 11:55
Аспирант
Отправить личное сообщение для kiff86 Посмотреть профиль Найти все сообщения от kiff86
 
Регистрация: 26.03.2011
Сообщений: 52

ну суть в том что в fileName у тебя object:
проверь так:
//alert(typeof fileName); // позиция 1


а replace все же к строке)
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2016, 11:59
Аспирант
Отправить личное сообщение для kiff86 Посмотреть профиль Найти все сообщения от kiff86
 
Регистрация: 26.03.2011
Сообщений: 52

используй вместо alert - console.log()
Там сразу видно что у тебя:
['index.php']


следовательно:

var fileName = location.href.split("/").slice(-1)[0];


решит проблему
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2016, 03:21
Новичок на форуме
Отправить личное сообщение для -_Gleb_- Посмотреть профиль Найти все сообщения от -_Gleb_-
 
Регистрация: 13.07.2016
Сообщений: 3

Спасибо, всё действительно работает!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Не работает JavaScript в IE Гость Internet Explorer 42 19.06.2012 15:38
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
не работает javascript отсеивание ad1online Общие вопросы Javascript 3 14.03.2009 22:58
не работает JavaScript в div"е lbvf911 Общие вопросы Javascript 4 26.12.2008 11:46