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

    Errori su IE della proprietà disable

    Dunque, partendo dal fatto che io ed il javascript ci odiamo a vicenda, quando sono riuscito in uno sprizzo di creatività a creare

    codice:
    // Function to swap a layer visibility status
    function swapDisplayLayer(layername) {
    	var blnDisplay = document.getElementById(layername).style.display;
    	if (blnDisplay == 'none') { document.getElementById(layername).style.display = 'block'; }
    	else { document.getElementById(layername).style.display = 'none'; }
    }
    
    // Function to swap a tr visibility status
    function swapDisplayTr(layername) {
    	var blnDisplay = document.getElementById(layername).style.display;
    	if (blnDisplay == 'none') { document.getElementById(layername).style.display = 'table-row'; }
    	else { document.getElementById(layername).style.display = 'none'; }
    }
    funzionante su Firefox, ho fatto salti alti 5 metri...
    fino a quando, dopo 2 mesi, in pieno sviluppo, una persona che usa IE mi ha segnalato come la cosa non funzioni su IE.

    Incredulo, non avevo mai provato prima, sono andato a verificare ed infatti, se il layer è visibile lo nasconde correttamente, se invece è già invisibile mi dice errore Impossibile ottenere la proprietà display.

    Qualcuno può darmi un suggerimento?
    Se poi volete mettere le mani allo "script" sopra, non rifiuto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Credo che il problema sia il valore table-row . Non e` supportato da molti browser (solo i piu` recenti). E IE e` uno dei piu` vecchi in circolazione al momento, e dei piu` lenti ad aggiornarsi (potenza dei sw proprietari).
    Per refernza puoi vedere http://www.w3schools.com/css/pr_class_display.asp .

    Mi permetto di riscrivere la tua routine, non perche` sia sbagliata, ma per una mia esigenza di razionalita`
    codice:
    // Function to swap a layer visibility status
    function swapDisplayLayer(layername) {
      var ogg = document.getElementById(layername);
      if (ogg.style.display == 'none') {
        ogg.style.display = 'block';
      } else { 
        ogg.style.display = 'none'; 
      }
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    GRazie Mich_, hai fatto bene a permetterti.

    Dunque, non potendo quindi usare table-row hai suggerimenti?
    Devo rendere espandibile una riga di una tabella.

    Non credo che includerla in un div (per sfruttare le proprietà di visibilità del div) sia corretto dal punto di vista del w3c .

    Hai suggerimenti?

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    ...
    if (blnDisplay == 'none') {
      document.getElementById(layername).style.display = (document.all && !window.opera)?'block':'table-row';
    }
    ...
    sinceramente non so come si comporti opera, suppongo come MOZ

  5. #5
    Gulp, scusa l'ignoranza, ma quindi con IE è sufficiente per abilitare una riga usare block invece di table-row ?

    Scusa, ma non ho modo di testarlo subito.

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ya, problema identico in questa discussione
    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.