Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    90

    Piccolo..grande..errore..maledetto

    Dunque,
    Ho uno script che cambia il carattere del testo al volo tramite javascript intervenendo su un css esterno.
    Esso funziona su tutti i browser all'infuori di IE che arrivato ad un certo punto da errore.
    Per far funzionare lo script basta cliccare sull'iconda UP in alto a destra.
    Inizieranno a venir fuori degli alert con i quali verifico il numero dello stile che sta ciclando.
    Gli errori escono allo stile numero 79 del CSS.
    Mi chiedo cosa diavolo possa essere.
    Inoltre aggiungo che con firefox da due errori la console :

    "errore durante l'interpretazione di font-size dichiarazione tralasciata"
    ma non riesco a capire cosa sia visto che il css è anche validato.

    Il tutto lo trovate qui : www.crazyonclick.it

    Grazie Anticipatamente

    Cordiali saluti

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    26
    Mhh. Se posso consigliarti una cosa, la valutazione dell'user agent non è molto efficente. Ovviamente poi ognuno fa come gli pare, ma io userei un:

    codice:
    if(document.styleSheets) {
       if(document.styleSheets[0].rules) stile = document.styleSheets[0].rules;
       if(document.styleSheets[0].cssRules) stile = document.styleSheets[0].cssRules;
    }
    Che è ugualmente efficiente e non tagli fuori altri browser.
    Poi un altro consiglio è quello di installare Firebug, che in questi casi è quasi indispensabile (a meno che uno non abbia niente da fare e voglia passare la giornata a chiudere alert). La prova del nove è che grazie a lui pure essendo le 4 di notte mi sono messo a debuggare il tuo codice

    Chiudiamo i consigli che fanno innervosire tutti e andiamo al punto:
    come era prevedibile l'errore è dato per il semplice fatto che non becchi la regola giusta al #79 (se non sbaglio) . Infatti essendo priva del font size restituisce una stringa vuota, che diventa un bel NaN quando provi ad aggiungerci 2 e infine un bel "NaNpx". Tutti i browser danno errore e sorvolano, mentre ad IE, che è tanto suscettibile solo quando deve dare fastidio (cioè sempre), questa cosa non gli va giù.

    Tra l'altro perchè usare una cosa del genere quando puoi benissimo ciclarli tutti e alzare tutti i fontSize: ##px di due unità senza usare roba astrusa?

    codice:
    function aumenta() {
      if(ok){
        for (var i = 0; i < stile.length; i++){
          var match = /(\d+)px/.exec(stile[i].style.fontSize);
          if (match) {
            size = parseInt(match[1], 10) + 2;
            if (size < 40) 
              stile[i].style.fontSize = size + 'px';
            else
              stile[i].style.fontSize = '40px';
          }
        }
      }
    }
    Usando questa funzione tutti i font-size: ##px si alzeranno di due unità, quelle che invece vuoi che rimangano fisse puoi metterli in em, o pt. Certo non è il massimo come cosa, sei costretto ad usare due unità di misura diverse... ma sicuramente è meglio di prima. Altre soluzioni meriterebbero uno studio più accurato.



    Altrimenti se vuoi lasciare tutto come sta togli 79 e mettici 81: tadah! (ma te le sei contate tutte a mano? complimenti per la pazienza!)
    Magicamente tutto funzionerà. Finchè non sposterai una virgola nel foglio di stile, allora potrai postare un altro topic

    PS. Stanotte sono in vena di pignolerie:

    codice:
    if (dimFont > 40)  dimFont = 40; 
      else  stile[stili[i]].style.fontSize = dimFont + 'px';
    Questa istruzione è logicamente superflua. dimFont dopo essere assegnato non verrà utilizzato. Certo questo non ti crea nessun problema, ma dà la possibilità ai rompipalle come me di bacchettarti e metterti faccine tipo questa:

    EDIT: anche l'80 è una regola sbagliata (dà là il secondo errore).

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il regolamento non e' un'opzione trascurabile
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.