Могу ли я проверить, есть ли следующая страница в истории браузера с Javascript? - PullRequest
3 голосов
/ 25 января 2011

Вот краткое описание: я использую iWebKit для отображения веб-страницы в качестве полноэкранного приложения для iPhone. Когда вы делаете это, вы получаете недвижимость, но вы теряете кнопки навигации. Я могу поместить кнопки, которые действуют как вперед / назад на страницу, и вернуть эту возможность. Это желательно, поскольку я могу поместить другой контент в ту же строку, что и эти кнопки (например, кнопка «домой» и заголовок)

Я хотел бы иметь возможность управлять отображением этих кнопок «вперед» и «назад» на основе JavaScript, в зависимости от того, есть ли на самом деле следующая или предыдущая страница для перехода. Например, если следующей страницы нет, следующая кнопка может быть недоступна и недоступна. Если я не могу управлять отображением кнопок, они активируются, но не действуют. Это может привести к путанице среди пользователей.

В заключение я хочу знать, есть ли какие-либо данные, к которым можно действительно получить доступ, которые скажут мне, есть ли следующая страница в истории. И, в этом отношении, предыдущая страница. Из моего прочтения history.next скрыт по соображениям безопасности. history.forward() и history.go(1) кажутся полезными только в качестве способов на самом деле переходить между страницами, не проверяя, существуют ли эти страницы. history.length() говорит вам, сколько страниц в истории, но AFAIK вы не можете понять, где вы находитесь в этой очереди.

Можно ли проверить, есть ли следующая / предыдущая страница в истории браузера?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2014

Какая огромная проблема безопасности ?!Браузер уже проверяет связь с сервером с вашим реферером, это общеизвестный факт, что вы НИКОГДА не можете включать конфиденциальную информацию в адрес (например, передавать пароли в $ _GET), только для этой проблемы.

Я вас знаюможет получить доступ к предыдущей странице, я знаю это для факта.

0 голосов
/ 26 января 2011

Как ни странно, хотя я понимаю, что будет огромная проблема безопасности, если можно будет посмотреть историю браузера, мне (легко) удалось перечислить текущую историю в Firefox 4b9:

var i, h = window.history, o = document.getElementById("output");

o.innerHTML = "<b>" + window.location.href + "<\/b><br>";

for (i = 0; i < h.length; i++)
    o.innerHTML += h[i] + "<br>";

С помощью этого списка вы можете проверить, соответствует ли последний и / или первый элемент window.location.href (из всех свойств history.current защищено: = S).Если он соответствует одному из них, вы можете находиться в начале или конце списка (но вы также можете быть по тому же адресу где-то в середине списка);если нет, то вы точно не на грани истории.

А теперь плохие новости: поскольку вы хотите применить это к браузеру на основе WebKit, я протестировал приведенный выше кодв Chromium, но элементов, подобных массиву window.history, не было.

...