2016-11-08 10 views
1

Я заметил пару сайтов, которые, если я создаю несколько ссылок, которые используют одну и ту же цель, на самом деле сайт не перезагружает запрос, скорее он захватывает ссылку и обрабатывает он, либо загрузив его в вкладку внутри своего приложения, либо изменив элементы на странице, снова ... все без полной перезагрузки URL-запроса.Обнаруживать или захватывать хеш-банд/querystring-изменение в одну и ту же целевую точку href

Как это обнаружить на моей странице?

К примеру, я хочу, чтобы обрабатывать несколько ссылок, поступающие из внешних ссылок, как этот

<a href="http://192.168.1.10/index.php?p=1#/tag/ABC-0021" target="myapp">0021</a>   
<a href="http://192.168.1.10/index.php?p=1#/tag/ABC-0031" target="myapp">0031</a> 
<a href="http://192.168.1.10/index.php?p=1#/tag/ABC-0012" target="myapp">0012</a> 

Прямо сейчас, каждый раз, когда я нажимаю один из этих ссылок, вся моя приложение/страница просто обновляется во вкладке браузера для этой цели. Кто-нибудь знает, как предотвратить это, чтобы я мог справиться с ним должным образом?

Редактировать: Google Music делает это - попробуйте щелкнуть ссылки, как только вы откроете вкладку, переместите эту вкладку на другой монитор/область вашего экрана. Выберите другую ссылку, обратите внимание на содержимое изменений в музыке Google, но не полностью обновите все приложение. https://jsfiddle.net/jonemzke/

Редактировать 2: Я полагаю, что это имеет какое-то отношение к изменениям window.onbeforeunload или popstate, однако я не могу найти конкретный пример кода для этого сценария.

+0

Изменение только хэштега не перезагружает страницу, хештег работает как привязка на странице в целом. Вам нужно добавить еще один параметр запроса url (эффективно изменить URL-адрес), чтобы обновить сайт. –

+0

@BrainFooLong это то, что я пытаюсь предотвратить - полное обновление. Я хочу предотвратить обновление и захватить, если кто-то уже имеет установленный сеанс в моем приложении, чтобы просто изменить содержимое тега div. – kerv

+0

Чем вы в порядке с этим решением. Проверка того, изменился ли хэш, работает только при проверке window.location.hash с интервалом, если он изменился. –

ответ

0

Спасибо, ребята - в моем случае вот это было, потому что я не был на самом деле ссылки на локальный сервер необеспеченный HTTPS, где у меня не было действительный SSL. Я просто использовал его для тестирования (и минуя предупреждение о безопасности), однако браузер считает это что-то, что ему нужно перезагружать каждый раз. Если вы перейдете на не HTTPS или настоящий сайт HTTPS с хэшами, он не обновится, как я хотел!

 Смежные вопросы

  • Нет связанных вопросов^_^