Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524

    Crossbrowser - Script per varie compatibilità

    ragazzi per risolvere il problema del getelementbyid,all,layer si usa questo script:

    codice:
    function bla(id){
    	return (document.all)?document.all[id]:(document.layers)?document.layers[id]:document.getElementById(id)
    }
    mi confermate questa funzione?


    Ma per capire se devo usare innerhtml o write();, che script potrei usare?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    va bene

    x il resto, se con write() intendi la sintassi di NN4 forse ti conviene lasciarlo in un if
    codice:
    if(document.layers){
      bla('livello').document.write("contenuto");
      bla('livello').document.close();
    }
    else {
      bla('livello').innerHTML="contenuto"
    }
    considera che con NN4 solo ad elementi in posizionamento assoluto è possibile cambiare contenuto con quella sintassi, quindi valuta se convenga cercare di preservare la retro-compatibilità

    ciao

  3. #3
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    quindi, scusami, tu cosa faresti in caso fossi costretto a scrivere in una tabella (td)? Abbandoneresti le retro-compatibilità?


    Mi consiglieresti un metodo "garantito" per le varie compatibilità?

    So che innerhtml non è sopportato solo da opera... in questo caso come mi comporto?


    perdona l'ignoranza in campo javascript , ma è una delle prime volte che provo a scrivere in modo dinamico con questo linguaggio, e mi preoccupano i possibili problemi!!!

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Neocron
    quindi, scusami, tu cosa faresti in caso fossi costretto a scrivere in una tabella (td)? Abbandoneresti le retro-compatibilità?
    sì, a lasciare eseguire quella parte per NN4 l' unico risultato sarebbe un errore javascript
    Mi consiglieresti un metodo "garantito" per le varie compatibilità?
    (se non intendi "metodo" nell' accezione informatica) non esiste, occorre preventivamente verificare manualmente
    o ricercare tabelle che comparino il supporto trai vari browser
    o procedere nel codice con controlli cosidetti "naturali" o try/catch
    So che innerhtml non è sopportato solo da opera... in questo caso come mi comporto?
    x opera pariamo di versioni antecedenti la 7
    e sinceramente qui dipende dal target porsi o meno il problema

    opera (lo odio!) è un browser che da molti grattacapi nelle versioni inferiori alla 7:
    il supporto al DOM non è completo con il risultato di costringerti a sniffare e a tentare di far degradare lo script sul + bello

    cmq, questo è uno sniff basato sul tipo/versione di browser in uso
    codice:
    if(window.opera && parseInt(navigator.appVersion)<7){
    // istruzioni x opera inferiore al 7
    }
    questo è uno sniff naturale (certamente consigliabile) x il caso specifico
    codice:
    ...
    else if(bla('livello').innerHTML){
      bla('livello').innerHTML="contenuto";
    }
    occhio che con NN4 senza un elemento in posizionamento assoluto il check passerebbe (cioè: come previsto non passa, appare l' alert) ma resterebbe l' errore

    perdona l'ignoranza in campo javascript , ma è una delle prime volte che provo a scrivere in modo dinamico con questo linguaggio, e mi preoccupano i possibili problemi!!!
    eh figurati, è un percorso lungo e a volte scoraggiante per tutti

  5. #5
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    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.