Lokesh Zende Ответов: 2

Как отключить действие возврата браузера


Привет,
На моей странице aspx у меня есть элемент управления tab.
На каждой вкладке я загружаю Iframe с URL-адресом. Этот URL-адрес Iframe хранится в таблице БД.
Каждая вкладка имеет свой собственный Iframe.
Вкладки генерируются динамически путем чтения данных в таблице.
Когда фокус находится на Iframe и пользователь нажимает кнопку назад, он пытается загрузить предыдущий url-адрес в Iframe и выдает ошибку 404.
Как я могу справиться с этим случаем кнопки backspace?
То же самое происходит, когда пользователь нажимает кнопку "Назад" браузера.

Есть ли какой-нибудь способ справиться с этими двумя сценариями?

Любая помощь будет оценена по достоинству.

Что я уже пробовал:

Я попытался захватить код ключа на событии keydown в javascript и установить окно.местоположение.href на ту же страницу.
Это хорошо работает на родительской странице. Но когда фокус сосредоточен на содержимом вкладки, у меня нет никакого контроля над ней.

Кроме того, для моей родительской страницы я отключаю кэш на странице Init event by
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
Ответ.Кэш.SetCacheability (HttpCacheability.NoCache);
Ответ.Кэш.SetExpires(DateTime. Now. AddSeconds(-1));
Ответ.Кэш.SetNoStore();
}

JayantaChatterjee

Вы можете использовать JavaScript для замены истории браузера вашей веб-страницы..
Использование ClientScriptManager...
https://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager(v=против 110). aspx

Richard Deeming

Как вы генерируете iframes? Если вы используете что-то вроде:
frame.src = url;

вы могли бы попробовать использовать:
frame.contentWindow.location.replace(url);
вместо.

2 Ответов

Рейтинг:
9

Lokesh Zende

Как я повел клавиатуре кнопку возврата, чтобы возвратить false на событие keydown.

document.onkeydown = function (e) {
	try {
		// IF backspace button is pressed, do not redirect the url.
		// keycode for backspace - 8 

	    if (e.keyCode === keyCode.backSpace) {
			return false;
		}
	} catch (e) {
		return true;
	}
};


Рейтинг:
1

Vincent Maverick Durano

Ты не можешь. Это полностью элемент управления браузером, и ваш код не может получить к ним доступ.

Тем не менее, вы, вероятно, могли бы заставить кэш истекать, чтобы отключить кнопку возврата браузера, как вы это сделали. Вы можете попробовать использовать этот JavaScript хак, чтобы предотвратить просмотр назад здесь: Отключите функцию кнопки возврата браузера с помощью JavaScript[^]