Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Netscape e IE: differenze modello oggetti

    Ciao a tutti !

    Ho uno script che deve leggere i valori di alcuni campi Text
    per poi inviarli ad una pagina ASP.
    Fino ad ora mi sono sempre affidato alla collection All di IE
    per accedere alle proprietà dei controlli, ad esempio facendo:

    alert(document.all["txtNome"].value);

    Tuttavia ho notato che questa collection non è disponibile
    in Netscape (ho la versione 7) così, dopo aver fatto qualche
    ricerca, ho scoperto che con NS bisognerebbe scrivere:


    alert(document.layers["txtNome"].value);


    Solo che non mi funziona per niente !!!


    <SCRIPT>
    function Messaggio()
    {

    if (document.layers)
    alert(document.layers["txtNome"].value); // per NE
    else
    alert(document.all["txtNome"].value); // per IE
    }
    </SCRIPT>

    <INPUT TYPE = "Text" NAME = "txtNome" VALUE = "Default">


    <A HREF = "javaScript:Messaggio();">Messaggio</A>


    Neanche questo semplicissimo script funziona.
    Evidentemente mi sono "perso" qualcosa...se qualcuno potesse
    darmi dei chiarimenti glie ne sarei grato.

    Ciao
    Simo

    P.S: Oltre che con NS, non funge neanche con FireFox...

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il DOM document.layers è del vecchio NN4
    NN6/7 adotta il DOM moderno document.getElementById()
    (occhio che vuole le tonde al posto delle quadre)
    standard per tutti i browser moderni (mozilla/firefox, safari, opera etc etc)

    cmq finchè si parla di campi form è ancora possibile usare la classica sintassi document.nomeForm.nomeCampo.value che è accettata (purchè si specifichi un name nel tag dei campi) da tutti i browser, vecchi e nuovi
    ciao

  3. #3
    Intanto grazie per la risposta e la rapidità con cui me l'hai data.

    Ho provato con GetElementeByID:
    (document.getElementByid) ? true:false);

    questo mi restituisce sempre false. Sia con IE che con NS.
    Se il metodo è supportato dovrebbe restituire True...no ?
    La soluzione document.Form.text non posso usarla in quanto
    il campo non è contenuto in un Form.

    Cosa mi consigli di fare ?

    ancora grazie e ciao
    Simo

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    per me non è corretto avere campi non contenuti in un form...

    test generico:
    var w3c=(document.getElementById)?true:false;

    ciao :)

  5. #5

    OK !!!

    Ho risolto, grazie.
    Alla fine ho optato per il FORM. Inizialimente
    ero restio a mettere i miei campi nel form per via della
    quantità di spazio verticale che questo occupa...
    ...ma mi sono adattato.

    Ciao
    Simo

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    basta questo stile
    codice:
    form {
      margin:0px;
    }
    x togliere quello spazio da tutti i form
    ciao

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.