5

Wenn wir dynamische Elemente mit Javascript in IE7 rendern, werden die CSS-Stile nicht angewendet. Wenn wir die Web Developer-Symbolleiste zum Anzeigen der Seite verwenden, werden die dynamischen Elemente nicht angezeigt. Seiten werden in Firefox, Chrome und Safari angezeigt.CSS-Stile werden nicht auf dynamische Elemente in Internet Explorer 7 angewendet

Kann IE7 CSS-Stile nicht für dynamisch erstellte Elemente anwenden? IE8 rendert die dynamischen Elemente korrekt.

Diese Frage gilt für IE8, da wir das IE-Tag verwenden, um IE8 zum Rendern im IE7-Modus zu zwingen.

Danke!

+4

Bitte Code anzeigen. Ein häufiger Grund dafür ist fehlerhafte HTML –

+0

Danke, Pekka. Sicher, wenn Sie die Website unseres Kunden unter http://www.tekiki.com besuchen, können Sie sehen, was ich meine. – Crashalot

+0

Wir haben die Website um Browser-/Feature-Erkennung erweitert. Bitte klicken Sie hier, um von IE7 oder IE8 auf die Website zuzugreifen: http://www.tekiki.com/?so=1. Wenn nicht, werden Sie auf eine Seite weitergeleitet, die die fehlende Unterstützung für IE erklärt. Geben Sie auf der Startseite zwei Keywords ein und klicken Sie auf "Brainstorm". Die Rendering-Probleme werden dann angezeigt. Zeigen Sie die Elemente speziell unter dem Feld "Übersetzungen" (rechte Spalte) an. Jede Zeile sollte eine Übersetzung und eine Sprachbezeichnung enthalten, IE7 masht jedoch die beiden Span-Elemente zusammen. – Crashalot

Antwort

11

Wir haben das Problem gefunden: Statt setAttribute ('class', 'cssClass') für ein neues Element zu verwenden, mussten wir setAttribute ('className', 'cssClass') verwenden, wobei 'cssClass' benutzerdefiniert ist CSS-Klasse.

Während FF das Attribut 'class' behandelt, erstickt IE, weil 'class' ein spezielles Schlüsselwort in Javascript ist. Daher müssen Sie 'className' als Attributnamen verwenden.

Danke für die Antworten aller!

+0

Ich bekomme eine weitere Ausnahme mit video.js Uncaught DOMException: Fehler beim Ausführen von 'setAttribute' auf 'Element': '-' ist kein gültiger Attributname. unter http://vjs.zencdn.net/6.2.4/video.js:20271:12 bei Array.forEach () bei Player.createEl $$ 1 [als createEl] (http: //vjs.zencdn .net/6.2.4/video.js: 20265: 39) bei neuen Player (http://vjs.zencdn.net/6.2.4/video.js:20103:23) bei videojs (http: // vjs.zencdn.net/6.2.4/video.js:24142:16) bei HTMLDocument. ( –

+0

) Ich glaube, das Problem war, dass ich im HTML-Element meines Players –

1

Ich nehme an, IE7 (dh IE8 lädt als 7) lädt die CSS-Stile und nur mit denen, die für die Dokumentstruktur und Ladezeit gelten. Vielleicht können Sie das erneute Laden des Stylesheets erzwingen, indem Sie ein anderes Tag in den dynamisch geladenen Inhalt einfügen.

Quick F: Verwenden Sie den Strict DOCTYPE? Sie sagen etwas here über die Notwendigkeit, die Strict DOCTYPE mit IE7 speziell zu verwenden. Es ist direkt unter dem Bereich Übersicht.

Vorsicht: Wenn Sie nicht von Anfang an Strenge verwendet haben, es wird aus Ihrem Layout werfen. Aber ich würde Strict trotzdem empfehlen, da es auf lange Sicht das Leben einfacher macht. Sortiere einfach dein Layout nach dem Wechsel und du bist A für weg.

Verwandte Themen