Problem mit getElementById und IE

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit getElementById und IE

    Hallo!

    Habe ein riesen Problem:

    Habe eine Tabelle:
    Code:
    <table width="100%" border="0" cellspacing="0" cellpadding="0" style="display: none" id="info">
                                  <tr>
                                    <td>
                                        <div align="center">
                                          <input type="hidden" name="filename" value="<?=$detail['filename']; ?>">
                                          <input type="hidden" name="picid2" value="<?=$_REQUEST['picid']; ?>">
                                          <textarea name="pic_info" style="width: 230px; height: 50px; font-family: Tahoma, Verdana, Geneva; font-size: 10px;" id="infotext"><?=LoadImageDescription($detail['filename']); ?></textarea>
                                          <br>
                                          <br>
                                      </div>
                                    </td>
                                  </tr>
                              </table>
    Nun habe ich einen Button:
    Code:
    <input type="button" name="Submit4" value="zeigen" id="btn_info" onClick="toggleInfo();">
    Wenn ich auf diesen Button klicke, soll das JavaScript aufgerufen werden:
    Code:
    function toggleInfo() {
    	var reTable = document.getElementById("info").style.display;
    	if (reTable == 'none') {
    		document.getElementById("info").style.display = "table";		
    	} else {
    		document.getElementById("info").style.display = "none";
    				
    	}
    }

    Sinn ist, dass die Tabelle bei Klick auf den Button gezeigt, bei nochmaligem Klick wieder versteckt wird...

    Soweit funktioniert das alles auch ganz gut - aber nur im FireFox und Opera...

    Der IE will das verdammt noch mal nicht darstellen...

    So - wie löse ich das im IE?!?!?!
    Habe etwas gelesen, dass ich das Objekt da über 'document.all' ansprechen muss, nur wie mache ich das genau?!?!


    Habe nun einen Hinweis bekommen, dass es mit document.all funktionieren sollte - das ist nun mein Lösungsansatz - will aber auch nicht:

    Habe es jetzt mal abgeändert, doch verstehe ich den blöden IE einfach nicht - geändert in:

    Code:
    	if (document.all){
    		var reTable = document.all.info.style.display;
    	} else {
    		if(document.layers){
    			var reTable = document.layers['info'].display;
    		} else {
    			if(document.getElementById('info')) {
    				var reTable = document.getElementById('info').style.display;	
    			}
    		}
     	}
    führe ich nun einen
    Code:
    alert(reTable);
    aus, zeigt mir sowohl Firefox, Opera als auch IE richtig "none" an... nun ist alles okay, doch wenn ich nun

    Code:
    	if (reTable == 'none') {
    		if (document.all){
    			document.all.info.style.display = "table";
    			document.all.btn_info.value = "verstecken";
    			document.all.btn_info.disabled = false;
    		} else {
    			if(document.layers){
    				document.layers['info'].display = "table";
    				document.layers['btn_info'].value = "verstecken";
    				document.layers['btn_info'].disabled = false;
    			} else {
    				if(document.getElementById('info')) {
    					document.getElementById('info').style.display = "table";	
    					document.getElementById('btn_info').value = "verstecken";
    					document.getElementById('btn_info').disabled = false;
    				}
    			}
    		}
    Bekomme ich im IE wieder die Fehlermeldung "Die Display Eigenschaft wurde nicht gefunden!"

    Was soll der Mist?!?! Erst findet er ihn und gibt mir richtig "none" zurück und wenn ich den Wert auf "table" setzten möchte, gibt es diese Eigenschaft auf einmal nicht...

    Was läuft da schief?!?!

  • #2
    1. code umbrechen
    2. zitat selfhtml
    Die Angaben zu den Tabelleneigenschaften werden von Netscape 6.0 interpretiert, vom Internet Explorer jedoch auch in der Version 6 noch nicht.
    also display: block;

    gru0
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Vielen, vielen Dank... Bin da gestern bald verzweifelt und habe alles mögliche ausprobiert...

      Auf das "block" bin ich allerdings nicht gekommen...

      Vielen Dank, jetzt funktionierts!!

      Grüße,

      Sascha

      Kommentar

      Lädt...
      X