Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Название html-файла из скрипта. (https://javascript.ru/forum/events/23134-nazvanie-html-fajjla-iz-skripta.html)

ArmagedDance 13.11.2011 13:13

Название html-файла из скрипта.
 
Мой js файл подключается к нескольким страничкам и чуть чуть по разному их обрабатывает.
Мне нужна функция или метод, который возвращает название html файла, в контексте которого он был вызван.
Есть такая ф-ция?

p.s. использую jquery если это имеет значение.

ArmagedDance 13.11.2011 13:16

Воспользовался поиском.
Вот такой вариант годится:
if ('http://www.mysite.ru/index.html'.indexOf(index.html) > -1) {}

observer 13.11.2011 17:36

Попробуйте поработать с регулярными выражениями.

Для теста, к примеру:
/\/index.html$/.test(location.href);

Для поиска имени файла:
location.href.match(/[^/]+\.html/i);

Почемучкин 13.11.2011 18:52

Скорее нужно искать название домена+путь и удалять их из строки location. Также удалить все после символов ? и #. Остаток - имя файла.

Но если путь не известен, то сначала удалить все после первого вхождения символа ? или #, потом удалить все до последнего символа / или \. Это более универсальный способ. Кстати, имени может и не быть - ссылка оканчиваться на / - то есть имя каталога. А реальное скрытое имя может быть не index.html

Но мне почему-то кажется, что может быть уже готовая функция для извлечения имени. Разве нет?

trikadin 13.11.2011 18:59

Да блин! У location куча полезных свойств! Например:
alert(location.pathname); // вернёт полный путь к файлу на сервере


Если же нужно только название файла (а не полный путь к нему на сервере), то так:
alert(location.pathname.match(/[^/]*$/));

Почемучкин 13.11.2011 19:14

Проверил - это работает даже с ? и # в конце пути
Но наверное надо добавить \ так как старые IE могли допускать такие символы в пути. IE8 уже исправляет \ на / автоматически.

trikadin 13.11.2011 19:20

ArmagedDance, а вообще, я бы делал параметрами те различия, которые встречаются на странице. Или вот так:

<script>//здесь пишем глобальными переменными то, что меняется на разных страницах</script>
<script src="нужный скрипт, который использует глобальные переменные"></script>


Часовой пояс GMT +3, время: 05:31.