Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2015, 20:49
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Блокировка кнопок браузера "Вперед/Назад" (хак для Ext JS)
На ваш суд представляю хак для блокировки кнопок браузера "Вперед/Назад", когда на экране открыто модальное окно.


Ext.define("Override.window.Window", {
	
	override: "Ext.window.Window",
	
	onShow: function() {
		var me = this;
		me.callParent(arguments);
		if (me.modal) Ext.util.History.disable();
	},
	
	onHide: function() {
		var me = this;
		me.callParent(arguments);
		if (me.modal) Ext.util.History.enable();
	}
	
});



Ext.define("Override.util.History", {
	
	override: "Ext.util.History",
	
	enabled: true,
	
	enable: function() {
		var me = this;
		if (!me.enabled) {
			me.enabled = true;
			me.un("change", "fixhash", me);
		}
	},
	
	disable: function() {
		var me = this;
		if (me.enabled) {
			me.enabled = false;
			me.fixedhash = window.location.hash;
			me.on("change", "fixhash", me);
		}
	},
	
	fixhash: function(token) {
		window.location.hash = this.fixedhash;
	}
	
});
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2015, 15:36
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Возможно есть лучше вариант? А то при этом варианте картинка дергается (переходит на назад к примеру и быстро обратно - это все-таки глазу заметно, плюс если на смену hash подвязан какой-то мегаобработчик вида - например создание вида, загрузка в него данных... то из-за этого дергание становится заметнее, да и вообще, ничего не хотелось бы грузить лишнего)
Ответить с цитированием
  #3 (permalink)  
Старый 12.06.2015, 22:00
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 214

Нет красивого кроссбраузерного варианта для этого. Вообще нужно не отказываться от кнопок вперед/назад, а строить приложение с учетом их функциональности (всетаки это браузер).
ExtJS поддерживает routes вот и юзайте их.

Типа такого:
#users/edit/:id - показывает модальное окно редактирования юзера
#users - показывает список пользователей

При попытке уйти с модального окна если форма dirty показывать предупреждение..
Ответить с цитированием
  #4 (permalink)  
Старый 12.06.2015, 23:20
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

У меня как раз приложение с использованием routes. И когда пытаешься уйти с модального окна происходит не очень приятная картина: окно остается конечно же на месте, зато на фоне видно, что все начинает меняться. Поэтому я решил запретить вообще уходить с модального окна. И что мне с того, что будет предупреждение? Все равно на фоне будут происходить не желательные действия.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать Ext JS и Ext Core вместе? Ichigeki ExtJS 3 04.07.2011 12:10
EXT JS 4.0.x: не работает пример с таблицами Allan Stark ExtJS 0 30.05.2011 15:24
Вакансия дизайнера/разработчика интерфейсов на EXT JS в Москве lakehouse Работа 0 09.01.2010 18:11
Оптимальный выбор браузера для интранет-сайта frid-karatel Javascript под браузер 12 29.12.2009 10:19
Блокирование кнопок управления окном браузера usernew Events/DOM/Window 5 08.12.2009 09:20