display:... bei Tabellenzeilen im IE und FF
*Alex*
- css
Hallo liebes Forum
Da ich zu meinem Problem nichts gefunden habe, was bei meinem Kenntnisstand nicht zu chinesisch war, nehme ich die Gelegenheit war, Euch bei folgendem Problem um Hilfe zu bitten:
In einer Tabellenzeile habe ich einen Button, der beim Anklicken dafür sorgt, dass eine _andere_ Tabellenzeile (die mit display:none; bislang unsichtbar war) angezeigt wird, während die Zeile mit dem Button verschwindet.
Das Ganze mit JavaScript ähnlich folgendem:
function geklicktButton() {
document.getElementById("button_zeile").style.display="none";
document.getElementById("sichtbar_machen_zeile").style.display="table-row";
}
mit "table-row" funktioniert es aber nicht im IE6, ebensowenig mit "run-in" oder "compact". Die Zeile wird nicht sichtbar.
Wunderbar funktioniert dagegen im IE6 "block" - die Tabellenzeile, eben noch mit <TR id="sichtbar_machen_zeile" style="display:none;"> unsichtbar, wird nach Ausführen des Scriptes tadellos angezeigt.
Leider führt das resultierende <TR style="display:block;"> im FireFox zur völligen Zerstörung der Tabellenzeile.
Ich habe das Gefühl, weder "block", noch "table-row", noch die anderen sind eigentlich dafür gedacht, was ich möchte.
Was ist denn eigentlich das schlichte Gegenteil von display:none?
Ich hätte gern ein display:yes ...
Wisst Ihr Hilfe?
Oder muss ich armer Newby jetzt auch noch eine Browserweiche basteln (da hab ich ja gar kein Bock drauf...)?
Also vielen Dank für Eure Hilfe
*Alex*
hi,
Da ich zu meinem Problem nichts gefunden habe, was bei meinem Kenntnisstand nicht zu chinesisch war,
Definiere chinesisch.
Wunderbar funktioniert dagegen im IE6 "block" [...]
Leider führt das resultierende <TR style="display:block;"> im FireFox zur völligen Zerstörung der Tabellenzeile.Was ist denn eigentlich das schlichte Gegenteil von display:none?
http://forum.de.selfhtml.org/archiv/2007/3/t148365/#m962637
gruß,
wahsaga
Hallo wahsaga
Ich habe (da es bei mir nicht funktionierte) exakt das Beispiel und die Lösung nachgebaut. Leider liefert mir IE6 konsequent die Meldung: "Fehler auf der Seite. Objekt erwartet."
Zum Test:
<HTML>
<HEAD>
<SCRIPT type="text/javascript">
<!--
function swapTeaser(id) {
var style = testProperty('Akm', 'display', 'table-row') ? 'table-row' : 'block';
if(document.getElementById(id).style.display == "none") {
document.getElementById(id).style.display = style;
}
else {
document.getElementById(id).style.display = "none";
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<table>
<tr><td onclick="swapTeaser('Akm')">Text</td></tr>
<tr id="Akm"><td>Text</td></tr>
</table>
</BODY>
</HTML>
Das ist jetzt kein Chinesisch, es ist eine Meldung, die ich vom IE so gewöhnt bin - immer erwartet er ein Objekt...
Auch das einheitliche Schreiben von "id" bzw "Akm" führt zum selben Ergebnis. Also das hilft mir nicht wirklich weiter.
Hab jetzt doch eine "Browserweiche" gebaut:
function zeigeZeile() {
var style = (navigator.appName == "Microsoft Internet Explorer") ? 'block' : 'table-row';
document.getElementById('_sichtbar_machen_zeile').style.display = style;
document.getElementById('button_zeile').style.display="none";
}
IE und FF gehorchen jetzt brav und machen beide genau was ich will -> der eine mit block, der andere mit table-row.
Leider verhält sich Opera (der sich als IE ausgibt) dabei von der Anzeige her wie ein FireFox und zerstört die Tabelle...
Was mach ich nun?
LG *Alex*
Was ist denn eigentlich das schlichte Gegenteil von display:none?
Ich hätte gern ein display:yes ...
Probiere mal xxx.style.display="", das sollte den Wert auf den Standardwert zurücksetzen. Ansonsten bleibt nur eine Methode wie die von Wahsaga, wobe ich da jetzt auch nicht weiß, wo der Fehler liegt.
Da legts Di nieda!!!
Was ist denn eigentlich das schlichte Gegenteil von display:none?
Ich hätte gern ein display:yes ...Probiere mal xxx.style.display="", das sollte den Wert auf den Standardwert zurücksetzen.
AHrggg: YES - genau das habe ich gebraucht!
Mein Gott, was hab ich mittlerweile doch für ne schöne Browserweiche programmiert:
function checkMSIE() {
var Suche1 = /MSIE/;
var Ergebnis1 = Suche1.test(navigator.userAgent);
var Suche2 = /Opera/;
var Ergebnis2 = Suche2.test(navigator.userAgent);
var Ergebnis = (Ergebnis1 && !Ergebnis2)? true : false;
return Ergebnis;
}
Dabei gehts so einfach!
Vielen, vielen Dank - is ja megapeinlich, dass ich da nicht alleine drauf gekommen bin!
LG *Alex*
Hi,
Mein Gott, was hab ich mittlerweile doch für ne schöne Browserweiche programmiert:
Da wäre ein kleine Google-Suche wohl schneller gewesen. =;->
var Ergebnis1 = Suche1.test(navigator.userAgent);
BTW: Der userAgent ist für Browserweichen kaum geeignet. Und wenn Du nur den IE unterscheiden möchtest, nimmt man am besten "Conditional Compilation".
Gruß, Cybaer