style.display funktioniert nicht in Firefox, Opera, Safari - IE7 OK

7

Ich habe eine absolute Position div , die ich zeigen möchte, wenn der Benutzer auf einen Link klickt. Der onclick der Verbindung ruft eine js Funktion auf, die die Anzeige des zu blockierenden div setzt (auch probiert: "", inline , table-cell , inline-table , usw.). Das funktioniert super in IE7, überhaupt nicht in jedem anderen Browser, den ich ausprobiert habe (FF2, FF3, Opera 9.5, Safari).

Ich habe versucht, Warnungen vor und nach dem Anruf hinzuzufügen, und sie zeigen, dass die Anzeige von none in block geändert wurde, aber die div nicht angezeigt wird.

Ich kann das div in FF3 anzeigen lassen, wenn ich den Anzeigewert mit dem HTML-Inspektor von Firebug ändere (aber nicht mit Javascript über die Firebug-Konsole) - damit ich weiß, dass es nicht nur außerhalb des Bildschirms angezeigt wird. p>

Ich habe alles versucht, was ich mir vorstellen kann, einschließlich:

  • Verwenden eines anderen Doctype (XHTML 1, HTML 4, etc)
  • Verwendung der Sichtbarkeit sichtbar / versteckt statt des Anzeigeblocks / keine
  • Verwendung von Inline-Javascript anstelle eines Funktionsaufrufs
  • Testen von verschiedenen Maschinen

Irgendwelche Ideen darüber, was das verursachen könnte?

    
palmsey 13.08.2008, 20:59
quelle

9 Antworten

6

Da das Festlegen der Eigenschaften mit Javascript nie zu funktionieren schien, aber die Einstellung mit Firebugs inspect, begann ich zu vermuten, dass der JavaScript-ID-Selektor defekt war - vielleicht gab es mehrere Elemente im DOM mit der gleichen ID? Die Quelle zeigte nicht, dass es da war, aber das Durchlaufen aller divs mithilfe von Javascript fand ich, dass das der Fall war. Hier ist die Funktion, die ich verwendet habe, um das Popup anzuzeigen:

%Vor%

(die Dienstprogrammfunktion getObjectsByTagAndClass ist nicht aufgelistet)

Im Idealfall werde ich herausfinden, warum dasselbe Objekt mehrmals eingefügt wird, aber ich habe keine Kontrolle über die Rendering-Plattform, nur die Eingaben.

Denken Sie also beim Debuggen von Problemen wie dieser daran, nach doppelten IDs im DOM zu suchen, die getElementById brechen können.

An alle, die geantwortet haben, danke für Ihre Hilfe!

    
palmsey 14.08.2008, 15:23
quelle
8

Können Sie ein Markup bereitstellen, das den Fehler reproduziert? Deine Situation muss etwas mit deinem Code zu tun haben, da ich dies mit IE, FF3 und Opera 9.5 machen kann:

%Vor% %Vor% %Vor%
    
Serhat Ozgel 13.08.2008 21:10
quelle
5

Die Antwort gefunden: Ich muss Folgendes verwenden, damit es in beiden Browsern funktioniert:

%Vor%     
Preethi 29.05.2009 16:55
quelle
2

Tatsächlich hatte ich das gleiche Problem, das Sie hier beschreiben. Was mein Problem tatsächlich behoben hat, war das Ändern der Dokumenteigenschaften.

Alte DOCTYPE / html-Spezifikation

%Vor%

Ersetzt durch

%Vor%     
Neal Connolly 18.04.2011 16:12
quelle
1

Überprüfen Sie die Fehlerkonsole (Extras-Menü & gt; Fehlerkonsole in Firefox 3), um sicherzustellen, dass kein weiterer Fehler passiert, den Sie nicht sehen, der Ihr Skript daran hindert zu arbeiten.

    
TheSmurf 13.08.2008 21:05
quelle
1

Versuchen Sie, die Höhe und Breite des div festzulegen, und stellen Sie sicher, dass es oben ist, indem Sie seinen Z-Index höher als alles andere setzen. Wenn sich das absolut positionierte div in einem Element befindet, das relativ positioniert ist, befindet sich die Position oben und links auf der Oberseite und links des relativ positionierten Elements. Versuchen Sie, Ihr div direkt unter das Körperelement zu setzen.

    
Lance Fisher 13.08.2008 23:36
quelle
1

Sie müssen eine window.onload Methode schreiben:

%Vor%

Oder Sie können auch eine Variable erstellen:

%Vor%     
fadzzz 05.08.2011 06:23
quelle
0

Es gibt einen störenden Anzeigefehler bei Firefox 3.5, aber nicht bei IE7 oder Firefox 2.0.9

Ich habe die absolute Position von 3 DIV - die erste mit reinem Text; der zweite mit einem CSS-Menü (Saugfisch-Typ mit UL und LI) und der dritte dito. Die dritte wird überhaupt nicht angezeigt, obwohl die Codierung überprüft wurde und sich mit dem W3C-HTML-Validator als perfekt herausgestellt hat.

Als vorübergehende Maßnahme habe ich den Inhalt des zweiten und dritten DIV zusammengeführt.

Es muss schlecht in Mozilla sein, wenn IE7 und FF2 OK anzeigen, aber nicht FF 3.5

    
Paul 21.11.2009 21:10
quelle
0

Ich gebe dir einen GROSSEN Hinweis:

%Vor%

Wenn Sie etwas im Stil haben, dann wird document.style funktionieren! Wenn Sie etwas in der Klasse haben, wird es nicht in document.style angezeigt und class="..." wird es ÜBERSCHREITEN!

Denken Sie darüber nach und das wird SO VIELE FRAGEN aufklären. Nur dieses eine kleine Verständnis wird dich von diesem Geistvirus befreien. Haben Sie einen guten Tag. Prost, Ron Lentjes, LC CLS.

    
Ron Lentjes 14.06.2013 03:46
quelle

Tags und Links