Кнопка «Назад» в Javascript - остановка начальной загрузки кнопки «Назад» - PullRequest
0 голосов
/ 29 мая 2010

Я использую ссылку «назад» и ссылку «вперед» в javascript для управления историей пользователя в окне модального / лайтбокса.

Проблема, с которой я сталкиваюсь, заключается в том, что при запуске модального окна пользователю доступны кнопки «назад» и «вперед», если при открытии окна нажимается начальная кнопка возврата JavaScript, она фактически закрывает окно. модальное окно, потому что история javascript возвращает пользователя на страницу ДО открытия до модального окна.

Итак, по сути, я пытаюсь отключить кнопку «назад» от начальной загрузки модального / лайтбокса.

Возможно ли это? Вот демонстрация того, что происходит ... http://www.apus.edu/_test/evan/modal/start.htm

<a href="javascript:history.go(-1)">Back Button</a> 
<a href="javascript:history.go(1)">Foward Button</a>

Ответы [ 2 ]

0 голосов
/ 12 ноября 2013

Попробуйте history.pushState(null, '', '#stay');

* Насколько я знаю, для этого требуется браузер с поддержкой HTML5.

0 голосов
/ 29 мая 2010

Я не совсем уверен, понимаю ли я, что вы делаете с модальными окнами, но первое, что приходит мне в голову, - это написать функцию и обернуть history.go (-1) в условный

function goBackIfAppropriate() {
  if( /* <check goes here> */ ) {
    history.go(-1);
  }
}

и в вашей разметке

<a href="javascript:goBackIfAppropriate()">Back Button</a> 

Просто чтобы не дать этому ответу закончиться без какого-либо упоминания о jQuery: посмотрите «BBQ jQuery: Кнопка« Назад »и библиотека запросов»

Обновление:

Хорошо, вот что у нас есть здесь - это противоречивое поведение history.go в фреймах в браузерах. Firefox3, кажется, делает именно то, что вы хотите, а Chromium нет. Что вы могли бы сделать, это предоставить идентификатор вашей "задней" -линке

<a href="javascript:history.go(-1)" id='back_button'>Back</a>

Затем, после загрузки вашего iframe-контента, вы получаете ссылку:

var iframe = document.getElementsByTagName("iframe")[0];
var link =  iframe.contentDocument.getElementById("back_button");
link.parentNode.removeChild(link);

или (используя jQuery;)

$("iframe").contents().find("#back_button").remove();

или делай с ней что хочешь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...