Nascondere e visualizzare tag su IE
Che internet explorer faccia schifo è un dato di fatto. Ad esempio non posso
inserire correttamente una pagina html dentro l’altro usando il tag
<object> ma solo come <iframe>. La cosa è molto fastidiosa perché
in questo modo non mi permetterebbe di validare la pagina come xhtml strict.
In realtà i programmatori della Microsoft si sono accorti fin dalla versione
5 di quanto facesse schifo il loro browser, così hanno introdotto i commenti
condizionali.
Grazie ad essi è possibile far apparire un pezzo di codice a una determinata
versione di IE. In questo modo ho buttato giù una cosa del genere:
<!–[if lt IE 7]>
<iframe src="http://web.theeyes.org/sito" />
< ![endif]–>
</object><object type="text/html"
data="sito">
<a href="http://web.theeyes.org/sito">nomesito</a>
</object>
Nonostante in questo modo su browser diversi da Microsoft l’iframe non
compariva perché inserito dentro un commento, su IE continuava a vedersi un
object vuoto sotto l’iframe, causando non pochi fastidi. Ho allora cercato di
risolvere con un css ad hoc che nascondesse l’object se il browser fosse < =
IE 7. Ma oggi ho trovato un modo forse più semplice:
<!–[if lt IE 7]>
<iframe src="sito"></iframe>
< ![endif]–>
<!–[if gte IE 7]> –>
<object type="text/html" data="sito">
<a href="http://web.theeyes.org/sito">nomesito</a>
</object>
<!– <![endif]–>
Ci potrebbe essere solo un problema che non posso testare: chi usasse IE 7
vedrebbe –> sopra l’object e un <!– sotto. Appena posso, controllo!
Posted on gennaio 17th, 2007 di alkcxy
Filed under: stili di tecnica
Ale, segnalo questa soluzione OK provata per discriminare IE da FF2 ed Opera 9:
<!– /****For IE only, all browsers excluded**** / –>
<!–[if IE]>–>
Warning: embed_me.html could not be embedded.
<!– /****For all browsers, IE excluded**** / –>
<!–[if !IE]> –>
Warning: embed_me.html could not be embedded.
<!–> –>
Non so più dove l’ho pescata, ma a parte il tremendo M$ iframe, si presta per trucchi simili, come ad es. qui:
http://www.quirksmode.org/css/condcom.html
http://www.alistapart.com/comments/byebyeembed/?page=3
Object funge OK su FF2/Opera9, rispetta lo z-index e le div {position: fixed;} mentre su IE7 simula un iframe con una ineliminabile cornice+scroll ed è pure insensibile allo z-index, che sembra infinito (se ne sta sempre in primo piano).
Davvero un peccato perché si presterebbe ad una presentazione frame-like ma frameless: in una sola pagina-base ne potresti inserire quante vuoi al volo (con un pizzico di DOM javascript client-side, una specie di Ajax supercasereccio, che sto da tempo usando per flash video *.flv didattici).
Complimenti per ciò che fai. Condivido il tuo disgusto verso la gestione universitaria della didattica, una ferraglia diversa da sede a sede che riesce a produrre – se va bene – solo cellulosa informatica gusto Microsoft/Adobe (.doc, .rtf, .ppt, .pdf ) a costi allucinanti: ma questo è quanto al massimo riescono a concepire i docenti italiani (e purtroppo anche la maggior parte degli studenti). E se nessuno fiata, amen. Ciao
Grazie a te per le soluzioni alternative e per i complimenti (immeritati!)
Mi dispiace che non riesco a portare avanti il blog da diverso tempo. Spero di tornare più attivo sull’html in futuro
Il codice di cui sopra è rimasto incompleto per una mia svista, quello corretto (sperando WordPress lo esegua come FF2) è il seguente:
<!-- /****For IE only, all browsers excluded**** / -->
<!--[if IE]>
<iframe id="inline" type="text/html" src="./embed_me2.html" frameborder="0">
Warning: embed_me.html could not be embedded.
</iframe>
<![endif]-->
<!-- /****For all browsers, IE excluded**** / -->
<!--[if !IE]> <-->
<iframe id="inline" type="text/html" src="./embed_me2.html" >
Warning: embed_me.html could not be embedded.
</iframe>
<!--><![endif]-->