Foro

como invocar un js

0
Hola amigos, un saludo muy especial necesito ayuda respecto a como se realiza un llamado desde el desktop a un .js, de la unica forma que me ha funcionado es copiando el codigo del js dentro del desktop. osea quiero desde el desktop invocar ventanas en el siguiente codigo se ve como desde el handler invocan una funcion que llama una ventana, lo que necesito es que no sea una funcion sino un llamado a un .js ej. MyDesktop.costo = Ext.extend(Ext.app.Module, { id:'costo-win', init : function(){ this.launcher = { text: '<b>costo</b>', iconCls:'icon-grid', [b]handler : this.createWindow1[/b], scope: this } }, [b]createWindow1[/b] : function(){ var desktop = this.app.getDesktop(); var win = desktop.getWindow('costo-win'); if(!win){ win = desktop.createWindow1({ title: 'PRUEBAS', width:700, height:250, bodyStyle:'background-color:#fff;padding: 2px', collapsible:true, tbar:toolbar, // <--- Toolbar maximizable: true, maskDisabled: true, items:this.form, id: 'date-win', iconCls: 'icon-grid', shim:false, animCollapse:false, constrainHeader:true, layout: 'column', }) } win.show(); } }); muchas gracias por la atencion prestada jaime corrales.
0
Holas, mira lo que puedes hacer es traer tus scripts desde el servidor a demanda, y ejecutarlos en el cliente, Te pongo un ejemplo de como hacerlo. En el cliente(index.html):
<body>
<button onclick="openWindow()">Abrir ventana con contenido a demanda</button>
	<script type="text/javascript">	
			function openWindow(){
				//Por Ajax				
				var customerWindow = new Ext.Window({
					id:'customerWindow',				
					width : 400,
					height: 400,
					closable: true,
					autoLoad: {
						url: 'customerPanel.php',
						border:false,
						scripts: true, //para ejecutar los <script>.../script obtenidos del servidor
						scope: this
					}										
				});
				customerWindow.show();				
			}			
	</script>
</body>
En el servidor(customerPanel.php):
<script>
	var customerPanel = new Ext.Panel({
		html:'Mi Panel'
	});
	
	var windowOpened = Ext.getCmp("customerWindow");
	windowOpened.add(customerPanel);
	windowOpened.doLayout();
</script>
<script>
//Algun otro script que quieres que ejecute, toda esta pagina puede ser tu modulo a mostrar en tu ventana
</script>
Explicando el código: Primero, se muestra una página con un botón, al darle click se abre una ventana, lo que hace esta ventana mediante la propiedad [color=#000000]autoLoad[/color], es ir a una url en el servidor ([color=#000040]customerPanel.php[/color]), la cual devuelve un conjunto de <script></script>... los cuales serán ejecutados en el cliente, y como puedes observar, ese código lo que hace es obtener la referencia por id de la ventana ("customerWindow") y añadirle el panel. En pocas palabras, no tienes que inlcuir tu script al inicio sino lo traes a demanda. Ahora todo esto trae ciertas consideraciones, como que debes ocultar las variables globales (puede ser aplicando closures), crear namespaces, encapsular código, etc. Otra opción es creando iframes dentro de la ventana.

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.