2009-11-23 10 views
7

Sto provando a creare un mini browser all'interno di una finestra usando extJS.Creare un browser finestra nel browser con extjs

Ecco quello che ho finora:

panelContent = new Ext.Panel({ 
     region: 'center', 
     margins: '0 0 0 0', 
     autoScroll: true, 
     html: '<iframe style="overflow:auto;width:100%;height:100%;" frameborder="0" src="http://www.google.com"></iframe>' 
    }); 
var tb = new Ext.Toolbar(); 
var combo = new Ext.form.ComboBox({ 
    width:435, 
    }); 
tb.addField(combo); 
tb.doLayout(); 
browser = new Ext.Window({ 
     title: 'Internet Browser', 
     tbar: tb, 
    closable: true, 
     closeAction: 'hide', 
     width: 600, 
     height: 600, 
     border:false, 
     plain: true, 
     layout: 'border', 
     items: [panelContent], 
}); 

che sto cercando di ottenere l'iframe caricare il contenuto di ciò che è digitato all'interno della casella combinata, ma non riesco a trovare il modo di 'dire' lui carica una pagina, e non potrei nemmeno "ottenere" quando l'utente preme "entra". Forse sostituendo la casella combinata con la casella di input? non so come farlo (iniziando con extjs).

Grazie per il vostro aiuto.

risposta

15

Si può provare questo:

Ext.IframeWindow = Ext.extend(Ext.Window, { 
onRender: function() { 
    this.bodyCfg = { 
     tag: 'iframe', 
     src: this.src, 
     cls: this.bodyCls, 
     style: { 
      border: '0px none' 
     } 
    }; 
    Ext.IframeWindow.superclass.onRender.apply(this, arguments); 
} 
}); 

var w = new Ext.IframeWindow({ 
id:id, 
width:640, 
height:480, 
title:"Knowledge Control Solutions Iframe Window Sample", 
src:"http://www.google.es" 
}) 


w.show(); 

Regards

+0

Grazie, questo perfettamente risolto il mio mistero, avevo quasi ottenuto che funziona con un Iframe all'interno della finestra div, ma non è riuscito su IE6, IE7, questo funziona bene ovunque. Ancora una volta, grazie per l'hack. –

+0

Qualche idea su come abilitare le animazioni in IframeWindow? –

6

Se si lavora seriamente con iframe in Ext JS, si dovrebbe usare lo ManagedIFrame user extension. Lavorare con un iframe non elaborato all'interno di Ext (soprattutto nei layout interni) non è la cosa più semplice da provare e fare da zero.