Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Имя файла из адреса 
:(
    Опции темы
SeregaLBN
Дата 13.12.2005, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 3.10.2003
Где: Киев

Репутация: нет
Всего: нет



Всем привет.

Вот понадобилось...
Нужно чтобы ф-ция работала и когда в качестве URL выступает локальный файл.
Вот наваял:
Код

function GetFileNameFromURL() {
   var strURI = "";
   var iLenURL = window.location.pathname.length;
   for (var i=iLenURL-1; i>0; i--) {
      var ch = window.location.pathname.charAt(i);
      if (ch == '\\' || ch == '/') {
         strURI = window.location.pathname.substring(i+1, iLenURL);
         break;
      }
   }
   return strURI;
}


Для локального файла 'c:\2\MyPage\index.html ' получается:
- IE возвращает 'index.html'. Что и надо. (На тулбаре в адресе 'C:\2\MyPage\index.html')
- в Firefox'e возвращает не то что я ожидаю - 'INDEX~1.HTM'. (На тулбаре в адресе 'file:///c:/2/MyPage/INDEX~1.HTM')

Как её подправить?
Или у когото есть др. решение?
PM MAIL   Вверх
Ciber SLasH
Дата 13.12.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Код
function GetFileNameFromURL() {
var fileName = location.pathname.split(/(\\|\/)/);
return fileName[fileName.length-1];
}

PM   Вверх
SeregaLBN
Дата 13.12.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 3.10.2003
Где: Киев

Репутация: нет
Всего: нет



Спасибо, Ciber SLasH. Так короче.
Недружу я с регекспами :( - ещё неналовчился их ТАК писать. Запутался в этих косых!
PM MAIL   Вверх
Ciber SLasH
Дата 13.12.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Всё просто:
рег находится между /..../
в скобках () идёт сравнение на бэкслэш \ (чтобы заискейпить, ставим два бэкслэша \\), или (знак чёрточка | ) на слэш / (чтобы заискейпить, ставим сначла бэкслэш, а потом слэш \/).
PM   Вверх
Zeroglif
Дата 13.12.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(SeregaLBN @ 13.12.2005, 17:12)
Как её подправить?
Или у когото есть др. решение?

Не мучайся с pathname и оставь регекспам решать сложные задачи...

Код

s=window.location.href;
alert(s.slice(s.lastIndexOf('/')+1));


PM MAIL WWW   Вверх
Ciber SLasH
Дата 13.12.2005, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(Zeroglif @ 13.12.2005, 20:14)
alert(s.slice(s.lastIndexOf('/')+1));

Ага, а вот и не везде сработает. smile
Т.к. IE например использует косую черту в обратном направлении (бэкслэш) на локальных файлах.
PM   Вверх
Zeroglif
Дата 14.12.2005, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(Ciber @ 13.12.2005, 22:45)
Ага, а вот и не везде сработает. 

Смайлик возвращаю ;) и предлагаю проверить... OK?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 14.12.2005, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Упс, точно, вот что значит поспешил ответить не проверив. Просто в строке адреса IE пишет бэкслэши, вот я и подумал...

Сори smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.