Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453

    Problema javascript e doctype strict su IE8

    ciao a tutti..

    ecco il mio problema: su IE8, questo codice non mi funziona. Se invece del doctype strict uso il doctype transitional mi funziona.

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    
    
    <html>
    <head>
    
    </head>
    
    <body>
    <script type="text/javascript">
    
    		if(window.Event) //modello standard vs modello IE...
    			window.onkeydown = commands;
    		else
    			document.onkeydown = commands; 
    			
    			
    function commands(e){
    
    		e = (!e) ? window.event : e;
    		var tasto = (e.which != null) ? e.which : e.keyCode;
    
    		alert(tasto);
    }
    </script>
    </body>
    
    </html>
    su firefox va benone, e anche su IE7, ma non su IE 8.

    Mi sapete aiutare?

    grazie!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    con IE8 hanno raggiunto l' apoteosi del delirio informatico

    prova cosi'
    if(window.Event && (!document.documentMode || document.documentMode!='8'))

    se trovi combinazioni in cui uno sniff del genere non funziona fammi sapere
    ciao

  3. #3
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453
    ti ringrazio, funziona...! me lo puoi spiegare però?

    e più che altro, perchè col doctype transitional funzionava l'altro metodo, e con lo strict no? non mi è chiaro questo fatto che il doctype influenza queste cose, io credevo servisse solamente per la validazione...

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Kilin
    me lo puoi spiegare però?
    discorso lunghissimo...
    per farla breve il doctype (o anche la sua assenza) dice al browser per alcuni aspetti come managgiare il documento,
    sta al browser poi decidere cosa fare, se renderizzare in maniera standard o compatibile a versioni piu' datate (quirks mode)
    questa decisione e' per tanti versi determinante, in genere soprattutto a livello di css, ma si riflette anche su javascript

    (se vuoi vedere quali doctype sicuramente mandano in quirk quali browser vedi la tabella qui)

    IE puo' renderizzare in vari modi:
    ha un quirkmode (compatibilita' a IE6), uno standard mode (compatibilita' a IE7) e, fresco fresco introdotto con l' 8, un superstandard mode (8 non travestito da 7)

    da quel ramo tu vuoi escludere l'8, ma ancora prendere il 7, anche se e' 7 perche' 8 travestito da 7 (per <meta>, per scelta dell' utente o perche' il doctype non gli permette di renderizzare come 8) quindi testi o per l' assenza di questa proprieta' specifica, documentMode, introdotta dall' 8 o che il suo valore non sia 8 (a seconda di cosa si traveste puo' essere 8,7,5)

  5. #5
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453
    :master:uhm, un po' contorto il problema ma penso d'aver capito

    grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.