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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как достать имя файла из URL? нужен некий аналог basename() в PHP 
:(
    Опции темы
pay
Дата 2.8.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Искал но ничего что-то то не нашёл (если искал плохо, ткните, плз, носом)..
Придумать тоже что-то не получается...

Задача соит так. Необходимо динамически изменять href в ссылке. Делается это на стороне клиента. Как изменять понятно. Но передаваемый скрипту url нужно перелапатить - надо менять путь. Точно путь и имя файла открываемого файла не известны - они каждый раз будет разным, отсюда и вопрос как получить имя файла в переданном url, что бы подставить к нему новый путь?

Код

...
    function hrefChange(newHref) {

   //Здесь нужно как то изменить путь в newHref, например изменить "http://mysite/1201/dokument0156.rtf" на "http://secondsite/backup/dokument0156.rtf"

    document.getElementById('DF').href=newHref;
    }
</script>

<a href='#' id='DF'>dokument0156.rtf</a>


в PHP такое действие можно выполнить с помощью функции basename(), к примеру, а как это реализовать на JavaScript?

Это сообщение отредактировал(а) pay - 2.8.2005, 14:41
PM MAIL   Вверх
Sardar
Дата 2.8.2005, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



location.pathname выдаст путь до файла, конкретно это между [протокол://][домен]путь[?параметры#хеш].

Далее можешь вырезать регами:
Код
function basename() {
  var ret=location.pathname.match(/[^\/\\]+$/);
  return ret[0]? ret[0]: "";
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pay
Дата 2.8.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Дело в том, что передоваемый url и не из того же сайта.
Т.е., к примеру, страница находится на http://syte.ru/stranica.php, а линк указывает на http://drugoy-site.it/1204/link.jsp

При этом location.pathname не сможет помочь...
PM MAIL   Вверх
Sardar
Дата 2.8.2005, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Ну значит дёргаем из URL, опять же регами:
Код
var test="http://forum.vingrad.ru/index.php?showtopic=60242&st=0&unread=&#entry481844";
function basename(url) {
  var ret=url.match(/^(?:[a-z]+:\/\/)?([^?]+)/i);
  ret=ret[1].match(/[^\/\\]+$/);
  return ret[0];
}
alert(basename(test));



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Guest
Дата 3.8.2005, 06:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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


 




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


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

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