Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615

    CSS, IE capisce e FF no: si sono invertiti i ruoli? Speriamo di no...

    Signori,
    vi partecipo di due disavventure accadutemi con Mozilla Firefox in merito alla mia web application.

    Data una semplicissima casella input text, e date due funzioni associate:

    Codice:

    codice:
    onactivate="jsfEleEnt('userbox', 'styTxtBoxAct');" ondeactivate="jsfEleEnt('userbox', 'styTxtBox');"

    che richiamano

    Codice:

    codice:
    function jsfEleEnt(EleId, EleStyle){
       document.getElementById(EleId).className = EleStyle;
    }
    
    function jsfEleExi(EleId, EleStyle){
       document.getElementById(EleId).className = EleStyle;
    }

    riferite alle omonime funzioni javascript che in pratica modificano il colore di sfondo della casella quando il puntatore vi entra, noto che con Explorer funziona tutto correttamente (anche vecchie version) mentre con Firefox no. Qual è il problema? Esistono comandi che fanno più o meno le stesse cose e che sono meglio visti da Firefox?

    Inoltre, una cosa stranissima. La seguente funzione javascript filtra le righe di una tabella a quelle compatibili ad una chiave di ricerca inserita in una text box il cui evento onKeyUp è appunto collegato a tale funzione.

    Codice:

    codice:
    function dataFilter (table, key){
       var baseKey;
       var activeKey = key.value.toLowerCase();   
       var activeTable = document.getElementById(table);   
       for (var i = 0; i < activeTable.rows.length; i ++){   
          baseKey = activeTable.rows[i].cells[0].innerHTML; 
          baseKey = baseKey.slice(baseKey.indexOf('value')+6, baseKey.indexOf('></INPUT>')).toLowerCase();      
          if (baseKey.indexOf(activeKey)>=0){ 
             activeTable.rows[i].style.display = 'block';
          }
          else
          {
             activeTable.rows[i].style.display = 'none';
          }      
       } 
    }

    In IE funziona benissimo. In FF a volte funziona, altre volte refreshando la pagina la tabella mostra le righe compatibili ma lascia spazi vuoti tra una riga e l’altra, ovvero è come se l’attributo visibile=‘none’ producesse la semplice non visibilità della riga lasciando tuttavia una riga bianca. Qualcuno di voi conosce un sostituto della proprietà visible=’none’ che stia simpatico anche a FF?

    Archimede

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    per il secondo problema:
    la proprietà display corretta per un tr dovrebbe essere table-row (almeno sui browser w3c compliant)
    quindi prova con

    activeTable.rows[i].style.display = 'table-row';

    invece di 'block'

    per il primo problema dovresti rivolgerti nel forum javascript, ma non serve che ne apri uno nuovo. Sposteremo il thread quando il secondo problema sarà risolto.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Caldera, sei stato gentilissimo.

    Il primo quesiti è risolto (onactivate e ondeactivate andavano sostituiti con onfocus ed onblur, ora tutto funziona). Riguardo il secondo, accade una cosa strana.

    Se imposto block funziona solo con IE, se imposto table-row funziona solo con FF mentre con IE lo script nemmeno si esegue. Non vedo particolari effetti collaterali ma le righe non si filtrano. Secondo te da cosa dipende?

    Grazie ancora,

    Archimede

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Se imposto block funziona solo con IE, se imposto table-row funziona solo con FF mentre con IE lo script nemmeno si esegue.
    allora tira un sospiro di sollievo, anche questa volta è IE a sbagliare

    a questo punto filtra il browser, ad es.

    codice:
    activeTable.rows[i].style.display = (document.all & !window.opera)? 'block' : 'table-row';
    Sposto in javascript
    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Quesito risolto. Sei stato gentilissimo!

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.