PDA

View Full Version : [Web] Come integrare pagine diverse senza frame


tomminno
08-05-2008, 12:53
Come si possono integrare pagine diverse evitando i frame?
Ho a che fare con un sistema in cui un utente loggato deve poter visualizzare in un riquadro altre pagine esterne al sito di origine come ad esempio GMail.
Tra l'altro ci sono almeno 3 siti coinvolti, il sito del cliente, su cui l'utente effettivamente si logga, che visualizza il sito che sto sviluppando che a sua volta richiama altri siti come appunto GMail, il tutto tramite autenticazione integrata e visualizzabile nella stessa pagina.

Una struttura simile comporta grossi problemi per quanto riguarda la compatibilità tra browser e per aggirare quello che può sembrare un Cross Site Scripting.

RaouL_BennetH
08-05-2008, 17:57
perdona la mia curiosità, ma a che scopo deve visualizzarlo in un riquadro della pagina corrente ? Non sarebbe più semplice farglielo aprire in una scheda nuova del browser?

Scusa in anticipo se la curiosità non è pertinente :)

DanieleC88
08-05-2008, 18:18
Se non puoi evitarle, usa le IFRAME, altrimenti credo possano essere inserite direttamente con un OBJECT:
<object type="text/html" data="URL">
...
</object>

Su quest'ultimo metodo non sono però sicuro, non l'ho mai provato.
ciao ;)

Antares88
08-05-2008, 21:42
Mi sa che il metodo più rapido è usare gli iframe. Tuttavia ti suggerirei di cercare ancora e magari di chiedere su un forum che si occupa specificamente di programmazione web.
Questo perché credo che gli iframe siano uno di quegli strumenti che il w3c sta cercando di eliminare dagli standard. L'xhtml 1.0 strict infatti non li supporta.
Ciò mi porta anche a credere che esistano soluzioni alternative per risolvere il problema: da un annetto e mezzo uso xhtml 1 strict e transitional e ogni qualvolta ho dovuto affrontare la mancanza di alcuni tag che sono stati deprecati mi è capitato di trovare un metodo alternativo, migliore e corretto.

Ah, forse è un'avviso inutile ma non si sa mai, te lo dico lo stesso: mi pare che IE5 non supporti correttamente il tag <object>
Non che sia grave eh, ormai ha una quota di mercato ridicola, ma purtroppo a volte capitano alcuni clienti che per mille possibili motivi sono costretti a usare software obsoleto.

edit: ah ora che ci penso mi pare anche di ricordare che google ha rilasciato recentemente alcune specifiche per poter richiamare via php servizi come gmail da siti esterni.

ri-edit: come non detto, ho cercato ma non ho trovato nulla di ufficiale a riguardo. Però ho trovato questa libreria non ufficiale:
http://gmail-lite.sourceforge.net/wordpress/index.php/about/libgmailer/

tomminno
09-05-2008, 07:52
perdona la mia curiosità, ma a che scopo deve visualizzarlo in un riquadro della pagina corrente ? Non sarebbe più semplice farglielo aprire in una scheda nuova del browser?

Scusa in anticipo se la curiosità non è pertinente :)

Il sito è del cliente e deve risultare tutto integrato, queste sono le specifiche.

tomminno
09-05-2008, 08:37
Mi sa che il metodo più rapido è usare gli iframe. Tuttavia ti suggerirei di cercare ancora e magari di chiedere su un forum che si occupa specificamente di programmazione web.
Questo perché credo che gli iframe siano uno di quegli strumenti che il w3c sta cercando di eliminare dagli standard. L'xhtml 1.0 strict infatti non li supporta.
Ciò mi porta anche a credere che esistano soluzioni alternative per risolvere il problema: da un annetto e mezzo uso xhtml 1 strict e transitional e ogni qualvolta ho dovuto affrontare la mancanza di alcuni tag che sono stati deprecati mi è capitato di trovare un metodo alternativo, migliore e corretto.


Proverò a vedere cosa succede con il tag object ed eventualmente obbligare il cliente ad usarlo.


Ah, forse è un'avviso inutile ma non si sa mai, te lo dico lo stesso: mi pare che IE5 non supporti correttamente il tag <object>
Non che sia grave eh, ormai ha una quota di mercato ridicola, ma purtroppo a volte capitano alcuni clienti che per mille possibili motivi sono costretti a usare software obsoleto.


Figurati che chiedono il funzionamento corretto anche con tutte le versioni buggate di Safari per Windows, sarà dura farglielo accettare.

Suppongo che i frame saranno d'obbligo.


edit: ah ora che ci penso mi pare anche di ricordare che google ha rilasciato recentemente alcune specifiche per poter richiamare via php servizi come gmail da siti esterni.

ri-edit: come non detto, ho cercato ma non ho trovato nulla di ufficiale a riguardo. Però ho trovato questa libreria non ufficiale:
http://gmail-lite.sourceforge.net/wordpress/index.php/about/libgmailer/

Si l'interfaccia verso google l'ho già, il problema è che è capitato che google abbia visto un XSS per via dell'interazione tra i server coinvolti

nucce
09-05-2008, 11:18
senno tramite scripting/linguaggi server side dividi la pagina in più <div> entro qui fai degli import di altre pagine...di url

per esempio in JSP:
<jsp:include page="URL" flush="true | false" />
dove i parametri indicano:
page: URL della risorsa fa includere
flush: attributo booleano che indica se il buffer deve essere svuotato o meno.

quindi avrai:

<div id="NomeID">
<jsp:include page="http://www.miosito.dominio/pagina.php" flush="true" />
</div>
<div id="NomeID2">
<jsp:include page="http://www.miosito2.dominio/pagina.php" flush="true" />
</div>
<div id="NomeID3">
<jsp:include page="http://mail.google.com/mail/?account_id=ACCOUNT%40gmail.com&zx=xxxxxxxxxxxx#inbox" flush="true" />
</div>

tomminno
09-05-2008, 12:48
senno tramite scripting/linguaggi server side dividi la pagina in più <div> entro qui fai degli import di altre pagine...di url

per esempio in JSP:
<jsp:include page="URL" flush="true | false" />
dove i parametri indicano:
page: URL della risorsa fa includere
flush: attributo booleano che indica se il buffer deve essere svuotato o meno.


Solo che così hai un vero mostro visto che inglobi una intera pagina con tanto di tag html head body all'interno di un div.
Dubito anche che una cosa del genere possa funzionare.