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!

3 Responses to “Nascondere e visualizzare tag su IE”

  1. Ale, segnalo questa soluzione OK provata per discriminare IE da FF2 ed Opera 9:
    <!– /****For IE only, all browsers excluded**** / –>
    <!–[if IE]&gt;–>

    Warning: embed_me.html could not be embedded.

    <!– /****For all browsers, IE excluded**** / –>
    <!–[if !IE]&gt; –>

    Warning: embed_me.html could not be embedded.

    <!–&gt; –>
    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

  2. 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 :)

  3. 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]-->

Leave a Reply