Как узнать адрес предыдущей страницы с помощью JS?
Как узнать адрес предыдущей страницы с помощью JS?
ЗЫ это нужно сделать в IE! |
document.referrer ?
|
hasherfrog
попробовал... тусто... alert(document.referrer); |
Vlad Drakula
А с document.history не пробовали? |
parent.document.referrer
top.document.referrer window.document.referrer ? |
dmitryst
Цитата:
|
|
hasherfrog
не в тему... "Internet Explorer Does Not Send Referer Header in Unsecured Situations" это к серверу... а мене веть нужно на странице... |
Почему не в тему? :] Я-то не знаю, где Вы смотрите... :] MSIE-то какой? И сам метод referrer у document есть?
|
hasherfrog
1) "MSIE-то какой?" - 6.* 2) "И сам метод referrer у document есть?" - не метод, а аттрибут... 3) "Почему не в тему?" - там речь идет о отсылке на сервер... а мне нужно это получить на клиенте... |
1) замечательно. только что проверил (не поленился перезагрузиться) - всё работает.
2) да, аттрибут. И он пустой, так выходит? 3) по-прежнему не понятно :] Такое впечатление, что Вы открыли локальную страницу с диска и пытаетесь узнать у неё javascript:alert(document.referrer); Так это и у FF пусто будет... ??? Или если URL руками вбить - тоже пусто будет. Или если страница после какого-нибудь POST-запроса... Или... эээ... чего там ещё бывает... Я-то думал, Вы по ссылкам ходите, а у Вас referrer пустой... |
___
Конкретный пример: Нажмите "Навигация -> Новые сообщения". У первого ("Подождите") окна referrer есть, у второго ("Результаты поиска") - уже не будет. Если же на странице "Подождите" нажать "выполняется" - будет. Я может, путаю чего-то, но ИМХО, страница с сайта MS тут как раз при делах :] Или пост в данную тему - "итоговая" страница не имеет referrer :] |
hasherfrog
мне нужно та ссылка куда поведет window.history.go(-1) если document.referrer выдает посто, а window.history.length > 0 то значит это плохо... |
Судя по MSDN (объекты history, location) нет быстрых способов определения предыдущей страницы без перехода на нее. Вероятно, что в случае с IE придется таскать с собой на каждой странице в переменной адрес предыдущей.
|
>> мне нужно та ссылка куда поведет window.history.go(-1)
Не получится. Никак. Объект history для некоторых методов/аттрибутов требует определённых привилегий: UniversalBrowserRead. И вообще - это нереально с точки зрения безопасности. Кто мне мешает (если у меня есть доступ к хистори) вывалить её в форму и отправить дяде Билли? >> если document.referrer выдает посто, а window.history.length > 0 то значит это плохо... document в иерархии окно-документ обладает гораздо меньшими "правами". Есть много чего, что недоступно ему. Так что значит, что это ничего не значит. Подробно см. тут: http://www.mozilla.org/projects/secu...d-scripts.html CTRL+F: function getHistory(i) HTML код:
<HTML> |
hasherfrog
Цитата:
а в IE этот код не ртаботает... |
Вы не поняли :] "Попробуйте" - значит, "посмотрите, что будет".
А будет "Ахтунг!" - и я не думаю, что MSIE более доверчивый :] Чтобы заработало в IE, достаточно убрать запрос привилегии. Но значения массива хистори будут undefined. Естественно. Vlad Drakula, помните я тут http://forum.oszone.net/thread-61346.html пыхтел? Мне как раз надо было знать, с какой [предыдущей] страницы бот (простейший javascript'ный) попал на данную страницу. Это к замечанию Prisoner-а, видимо :] |
Время: 22:11. |
Время: 22:11.
© OSzone.net 2001-