Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать, существует ли ссылка.

14K
27 ноября 2007 года
Vladimir03
18 / / 19.06.2006
Уважаемый народ! Какой функцией в JavaScript можно проверить существование ссылки?
Например есть сцылка: http://www.xxxxx.ru/xxx/xxx.jpg
подскажите функцию чтобы получилось что нибудь типа

if(Функция(http://www.xxxxx.ru/xxx/xxx.jpg)==false) exit

Заранее благодарен. Если в JavaScript такого нету, то где есть?
12
27 ноября 2007 года
alekciy
3.0K / / 13.12.2005
В PHP есть. Вообще в любому серверном языке есть.
251
27 ноября 2007 года
SkyMаn
1.7K / / 31.07.2007
Можете юзать AJAX, который будет коннектиться к РНР-скрипту своего домена, а тот скрипт уже буит проверять доступность той страницы.
Но, если на странице отконфигурирован mod_rewrite или другие настройки, и там при возникновении ошибки 404 - стоит авторедирект с исправлением заголовка на 200 ОК, то не выйдет.
14K
27 ноября 2007 года
Vladimir03
18 / / 19.06.2006
PHP скорей всего не попрет. Мне надо на клиенте чтобы работало. А там сервера нет. Придется виртуальный ставить. А хочется, чтобы везде работало. Например, проверяем ссылку изображения, если есть, то показываем ее, если нет, то идем дальше по циклу. Приблизительно такой должен быть алгоритм и хотелось бы чтобы на JavaScript.
271
27 ноября 2007 года
MrXaK
721 / / 31.12.2002
а если заюзать ajax, только обратиться не к бэкенду, а собсна нужному сайту? только так как XMLHTTPRequest не может обращаться к другому домену, то юзать загрузку через iframe или script... типа ifLoaded то существует, иначе нет
12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Mr.Hacker

то юзать загрузку через iframe


А разве в стандартной жабе есть перехват HTTP заголовкой фрейма?

251
28 ноября 2007 года
SkyMаn
1.7K / / 31.07.2007
А если во фрейме юзать через parent?
353
28 ноября 2007 года
Nixus
840 / / 04.01.2007
В JS это невозможно. Самое оптимальное - это flash.
14K
28 ноября 2007 года
Vladimir03
18 / / 19.06.2006
Цитата: Nixus
В JS это невозможно. Самое оптимальное - это flash.



Тода придется флэш изучать. Или на любимом c++ писать. Хотелось просто попроще что нибудь.
А где доки по флэш взять? Ссылочек нету каких-нибудь?

352
28 ноября 2007 года
skywalker
694 / / 10.02.2006
Цитата: Nixus
В JS это невозможно. Самое оптимальное - это flash.


В JS еще как возможно и делается запросто...

353
28 ноября 2007 года
Nixus
840 / / 04.01.2007
Цитата: skywalker
В JS еще как возможно и делается запросто...


Да ладно? Как?

12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Сейчас будет ответ: через аякс?!
271
28 ноября 2007 года
MrXaK
721 / / 31.12.2002
Цитата: alekciy
А разве в стандартной жабе есть перехват HTTP заголовкой фрейма?



но ведь по идее можно посмотреть загрузился фрейм или нет... если загрузился - есть страница, не загрузился - нету... или там все заголовки считаются что загрузился?

12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Mr.Hacker
но ведь по идее можно посмотреть загрузился фрейм или нет...


А смотреть кто будет? Человек? И в случае не действующей ссылки перебивать исходный код? :D

Автору требуется автоматизация, а не "посмотреть".

271
28 ноября 2007 года
MrXaK
721 / / 31.12.2002
ну разве dom:onload не будет ловить загружен фрейм или нет??
12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Ты имеешь в виду onload событие? Будет ли вызван обработчик для него? Конечно будет, но вот над чем подумай: будет ли вызван обработчик при статусе ответа 200? А 404? А 503?
271
28 ноября 2007 года
MrXaK
721 / / 31.12.2002
вот я не знаю) хотелось бы узнать.. но имхо при статусе 20х, 300х сработает, при 40х и 50х нет) ведь ифрейм грузит браузер, ловит заголовок ответа тоже он, следовательно так же как и при загрузке обычной странице, на кодах 400 и 500 событие onload он не должен вызывать) но, возможно, я не прав)
12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
У меня большие подозрения, что не прав. И 4хх статусы, и даже 5хх это все равно ответ сервера, это все равно получение контента, т.е. onload наступает.
353
28 ноября 2007 года
Nixus
840 / / 04.01.2007
Я вот тож не знаю вызывитсся ли onload при статусах 4xx и 5xx. Но в любом случае ничего ни с того, ни с другого варианта не поличить.
271
28 ноября 2007 года
MrXaK
721 / / 31.12.2002
ну почему же) если onload не вызовется, значит нужной страницы нету)
353
28 ноября 2007 года
Nixus
840 / / 04.01.2007
Цитата: Mr.Hacker
ну почему же) если onload не вызовется, значит нужной страницы нету)


Что за событие такое "onload не вызывается"?

Вообщем для сомневающихся, проверяйте:
[HTML]<iframe src="none.htm" id="frm"></iframe>
<script><!--
function loadHandler()
{
alert('Loaded');
}
function check()
{
var url = document.getElementById('url').value;
var frm = document.getElementById('frm');
frm.onload = loadHandler;
frm.src=url;
}
--></script>
<input type="text" name="url" id="url" />
<input type="button" value="Проверить!" onclick="check();" />
[/HTML]

12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Mr.Hacker
ну почему же) если onload не вызовется, значит нужной страницы нету)


Обработчик по событию onload вызовется в любом случае по идее. Ответ от сервера получен? Получен. Значит onload наступило.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог