задачка на js
Страница загружает картинку.
В момент загрузки картинки происходит ее редирект на новый урл. То есть был урл картинки http://fxleader.ru/img.php, а стал http://google.com Как с помощью javascript узнать новый урл картинки (то есть google.com)? содержимое http://fxleader.ru/img.php <?php header('Location: http://google.com'); ?> Пример - http://build-technics.ru/test/test.php |
img.onload=img.onerror=function(e){alert(this.src) };
|
img.onload=img.onerror=function(e){alert(this.src) }; не работает. Возвращает изначальный src, а не тот, куда был редирект. За решение задачи готов отблагодарить. |
Цитата:
Для того чтобы узнать шлюз по которому реально будет загрузка изображения нужно анализировать заголовки ответа сервера. В XMLHttpRequest это можно сделать, есть ли что помимо этого не в курсе. |
Тоже не подойдет, так как картинка и скрипт на разных доменах
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
laimas,
Тебе чего не ясно? У него картинка с src=google.com С этого начинай танцевать. |
Цитата:
|
Какой еще шлюз в img src= покажи.
|
Судя по количеству тем которые ты испоганил на форуме, а так же по тому что ты знаток таких штуковин как "ПеХеПе", "Хетемля" и прочей экзотики, ты же самый умный получается, тебе то чего вопросы задавать.
Свойство src это и есть шлюз по которому производится предварительная загрузка изображения в память. То что по адресу шлюза было перенаправление сервером никак отразится на самом свойстве, это не запрос страницы браузером. Прежде чем гадить в темах, хорошо подумай стоит ли писать. |
Блин, деревня, ты мне покажи src=google.com, ну, в хтмле, чтоб я увидел какая картинка загрузится. Ты хоть раз видел такую картинку? Ну то есть, что будет, если в src вывалится хтлм знаешь? Так попробуй умнег свои шлюзы прочистить.
Никакого "перенаправления" быть не может с src, что написано, то браузер и запросит. Если сервер ему ответит редиректом, скажем 302, то общение сервера с браузером касательно этой картинки вывалится в лог заголовков. Если же сервер пойдет куда-то на гугль и там возьмет фотку, а потом выдаст ее инлайновым потоком - ты просто ничего вообще не узнаешь, откуда она, с кукля или тындекса умнег. ЗЫ Походу у тебя была неудачная декомпрессия в шлюзовой камере программы Марс-500 и с тех пор тебе шлюзы повсюду мерещятся. |
Столько букв и все понос. Занимайся "хтмлем", а в html и остальном у тебя понятий ноль, смысла пояснять нет.
|
посоны, тут флуд не уместен!
Насколько я понял, моя задача не решаема, если скрипты на разных доменах. Посколько с помощью js нельзя получить новый URL после редиректа. Я перерыл весь stackoverflow. Если кто готов оспорить, давайте продолжать. |
Цитата:
Цитата:
От сервера браузер получит заголовок - Location : новый путь к изображению. Все. |
Цитата:
Да собственно это любую капчу картиночную посмотри и поймешь, что ничего ты не узнаешь о редиректах по src. Сервер может выдать inline, то есть пиксели по запрошенному из src адресу и все. |
Наврал, так было - через upload, но зачем запускать php, если достаточно апача.
RewriteRule \.(jpg|png|gif) assets/images/noimage.png [NC,L] Вот и пойми внутри браузера, откуда пришла картинка по src. |
laimas,
Запрос урла картинки делает браузер, а значит в image.src она останется старой. Как вариант, попробовать запросить этот url через XMLHttpRequest, ведь изначальный url у вас есть. И уже там смотреть заголовки. Т.е. берем yimage.url и делаем запрос через XMLHttpRequest и смотрим, что пришло в ответ. |
Цитата:
Цитата:
Только одно "но" - запрос идет на "свой" сервер, который и делает перенаправление, а значит адрес заведомо известен. Так в чем тогда проблема заведомо и отдать его клиенту. |
Можно сделать через куки. При редиректе, PHP скрипт ставит куку с новым адресом картинки. А JS функция, по завершению onload читает куки и заменяет src.
Но сам ваш алгоритм работы не очень. Подумайте, вы точно хотите строить архитектуру своего приложения таким образом? |
1. Начинать нужно с цели и обоснования использования такой фичи... , вероятно есть Варианты и проще для этой задачи
2. Для определения URL с переадресацией, типично имеют API проксирования, куда отправляют тестируемые адреса, и сервер возвращает реальный URL и контент |
Часовой пояс GMT +3, время: 15:32. |