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

    getAttribute in IE e NN

    ciao ragazzi. qualcuno mi può spiegare perchè il mio codice:

    top.frame1.getAttribute('name');

    funziona correttamente sotto IE ma in Netscape da un errore javascript: "Error: top.frame1.getAttribute is not a function"

    nel mio codice uso anche la funzione

    function getById(fr,name) {
    if (fr.document.getElementById) {
    return fr.document.getElementById(name);
    }
    else if (fr.document.all) {
    return fr.document.all[name];
    }
    else if (fr.document.layers) {
    return getObjNN4(fr.document,name);
    }
    }

    per quanto scritto sopra equivale a

    getById(top,'frame1').getAttribute('name'));

    In IE ancora una volta funziona correttamente ma in NN mi da:

    "Error: getById(top, "frame1") has no properties"


    Cosa sbaglio? Il modo di accedere hai frame? top.frame1 esiste...
    Che cosa può non funzionare delle getAttribute che in IE funzioni?

    Grazie e buon WE (della serie guarda te se per una stupidata del genere mi sono bruciata il sabato sera! )

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il metodo getAttribute() non credo sia JS standard. Dovrebbe essere proprietario di IE.
    Forse in JS puoi testare separatemente i vari attributi che ti interessano.

    Invece la funzione getById() da te definita dovrebbe funzionare in tutti i browser (escludendo NN4 e precedenti e IE3), ma poi forse il problema e` come usi l'oggetto ritornato.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ciao, devo contraddire leggermente Mich...

    getAttribute() è standard del dom w3c ed è suppotato da tutti i browsers che supportano il dom standard, quindi da netscape 6, Mozilla, Safari, Explorer dal 5 in poi, Opera (si sicuro dal 7 in poi), ecc.

    Per far riferimento tramite il dom w3c ad un elemento e quindi poter utilizzare getAttribute() e necessario usare:

    document.getElementById('id_elemento')

    quindi ad esempio:

    document.getElementById('id_elemento').getAttribut e('name')

    ti verrà rstituiti il valore dell'atributo name se questo è presente.

    Nel tuo caso invece mi sembra di capire che devi operara da un frame ad un altro, allora le cose si comblicano, devi fare così:

    top.document.getElementById('id_elemento').getAttr ibute('name')

    l'ho testato su mozilla (1.5), opera 7 e IE 5.5 e funziona senza problemi.

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.