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

Переделал хак. Даже вторая проблема пропала.

Ext.define("MyApp.override.ux.IFrame", {
	
	override: "Ext.ux.IFrame",
	
	loadMask: "<div style='text-align: center'>Подождите,<br/>загружается страница...</div>",
	
    getRandomSuffixId: function() {
    	return "-iframe-" + Math.round(Math.random() * 100000);
    },
    
    getRandomId: function(prefix) {
    	return prefix + this.getRandomSuffixId();
    },
    
    setWinDocRandomId: function() {
    	this._prevdocid = this.getDoc().id;
		this._prevwinid = this.getWin().id;
		this.getDoc().id = this.getRandomId("ext-document");
		this.getWin().id = this.getRandomId("ext-window");
    },
    
    unsetWinDocRandomId: function() {
    	this.getDoc().id = this._prevdocid;
		this.getWin().id = this._prevwinid;
    },
	
	onLoad: function() {
		this.setWinDocRandomId();
		this.callParent();
		this.unsetWinDocRandomId();
	},
	
	cleanupListeners: function() {
		this.setWinDocRandomId();
		this.callParent();
		this.unsetWinDocRandomId();
	}
	
});


Пока вроде все работает. Но из-за того, что меняются id (которые явно используются фреймворком) неизвестно какие будут последствия (несмотря на то, что их значения я потом восстанавливаю).
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.

Последний раз редактировалось khusamov, 05.08.2015 в 06:40.
Ответить с цитированием