Visualizzazione dei risultati da 1 a 9 su 9

Discussione: oggetto styleSheets

  1. #1
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577

    oggetto styleSheets

    Ciao
    Il seguente codice presenta un "piccolo" problema se eseguto su fireFox mentre su IE funziona .
    codice:
    function foo1()
    {
    	document.styleSheets[0].rules[0].style.background="red";
    }
    E' l'unica funzione js definita e cambia la proprietà background del body , ho fatto dei controlli sull'oggetto document.styleSheet che funzionano perfettamente su entrambi i browser ma non riesco a cambiare le regole del css

    codice:
    if(document.styleSheets) 
    {
       alert("si");// supporta l'oggetto styleSheets
       alert("Numero di fogli di stile" + document.styleSheets.length);   
       alert(document.styleSheets[0].href);  
    }
    else 
    {
       alert ("no");// non supporta l'oggetto styleSheets
    }

    Ho controlla sulleo opzioni di FireFox e sembra che il codice Js sia attiva .
    L'errore mi sembra strano perchè sull'articolo letto di html.it
    http://javascript.html.it/articoli/l...li-di-stile/1/

    parla di problemi tra IE e Netscape e non parla di ForeFOx

    Spero che qualcuno mi riesca ad aiutare

    Ciaooo

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    NN6 dell' epoca ha lo stesso motore di rendering di mozilla (firefox non c'era ancora)
    quanto scritto li' per NN6 vale anche per firefox oggi,
    piuttosto leggi piu' avanti nell' articolo: nn6, firefox e konqueror non usano rules ma cssRules
    http://javascript.html.it/articoli/l...li-di-stile/2/
    ciao

  3. #3
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Chiedo umilmente scusa a tutto il forum , ora le cose vanno bene , la cosa strane e che primaq di postare questa prova l'avevo già fatta e sembrava che noon funzionava
    ma mi sbagliavo

    posto il nuovo codice e ringrazio Xinod per la nota storica
    cmq me lo dovevo aspettare visto che sull'articolo cè scritto che ccRules rispetta le specifiche W3C

    codice:
    function foo1()
    {
    	document.styleSheets[0].cssRules[0].style.background="red";
    }
    Prima di lasciare la dicussione ho un'ulteriore domanda da fare è possibile fare una cosa di questo genere senza incappare in errori formali o pratici

    codice:
    function foo1()
    {
    	document.styleSheets[0].cssrules[0].style.background="red";
    	document.styleSheets[0].cssRules[0].style.background="red";
    }

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    intendi lasciando sia .rules che .cssRules?
    document.styleSheets[0].rules[0].style.background="red";
    document.styleSheets[0].cssRules[0].style.background="red";
    dovresti avere un errore perche' chi supporta uno non supporta l' altro

    fai come nell' esempio, che ti permette di far riferimento in maniera crossbrowser all' array rules
    codice:
    ok = (document.styleSheets) ? 1:0;
    if(ok){
      stile=(document.all)?document.styleSheets[0].rules:document.styleSheets[0].cssRules;
    }
    ciao

  5. #5
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    allora la prima riga di codice penso che mi sia chiara : ci deice se l'oggetto StyleSheet è supportato dal Browsr(ok=1)
    ok = (document.styleSheets) ? 1:0;

    Nella seconda invece non conosco l'istruzione document.all
    mica mi potresti dare una mano perchè è da un po che leggo e non mi è mai capitata davanti tranne nell'articolo ma non è spiegtata (mi sembra..)



  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    si controlla il Document Object Model supportato dal browser, come viene fatto riferimento agli oggetti del documento

    document.all e' il DOM IE proprietario (+ opera)
    document.layers e' il DOM proprietario del defunto NN4
    document.getElementById e' il DOM degli standard, tutti i browser moderni lo supportano (anche IE>5 e opera insieme al .all)
    ciao

  7. #7
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    In altre parole con il controllo

    stile=(document.all)?document.styleSheets[0].rules:document.styleSheets[0].cssRules;


    si applica [/I]document.styleSheets[0].rules[/I] se stiamo parlando di IE altrimenti si applica l'altra sintassi , sperando che il browser sia conforme agli Standard

    ad es. un NN4 che risorge non riesce ad interpretare il codice

    P.S.
    Ho qualche dubbio che la mia interpretazione sia giusta

  8. #8
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    volevo dire non giusta :berto:

  9. #9
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Vorrei chiarire il PS prima di Implodere come un cazz....one

    Penso di aver interpretato male quello che ha detto Xinod
    quindi se potete mi potete aiutare vi ringrazio per me e la mia rinco...mento





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.