Wie füge ich ein mit Elemente mit Prototype in IE6? [geschlossen]

StackOverflow https://stackoverflow.com/questions/130843

  •  02-07-2019
  •  | 
  •  

Frage

Mit Prototype 1.6 "neues Elemente (...)" Ich versuche, ein Element

mit schaffen sowohl einem und aber nichts passiert in IE6.

var tableProto = new Element('table').update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

Ich bin dann zu versuchen, Kopien davon so zu injizieren:

$$('div.question').each(function(o) {
  Element.insert(o, { after:$(tableProto.cloneNode(true)) });
});

Meine aktuelle Problemumgehung ist ein erstellen

anstelle eines
-Element, und dann "update" mit all der Tabelle HTML.

Wie kann man dies erfolgreich tun?

War es hilfreich?

Lösung

Wie sich herausstellt, gibt es nichts falsch mit dem Beispiel-Code ich in der Frage zur Verfügung gestellt - es funktioniert in IE6 gut. Die Frage, die ich war mit Blick auf ist, dass ich auch falsch im Konstruktor eine Klasse für das Element

angibt, aber weggelassen, dass aus meinem Beispiel.

Der „echte“ Code war wie folgt und ist falsch:

var tableProto = new Element('table', { class:'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

Das funktioniert richtig in Firefox, aber nicht in IE6, weil es falsch .

Der richtige Weg Attribute zu einem Element über diesen Konstruktor hinzuzufügen ist Strings bietet, nicht nur Attributnamen. Der folgende Code funktioniert in beiden Browsern:

var tableProto = new Element('table', { 'class':'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

Es ist ein Fehler aufgrund von „Klasse“ in JavaScript ein reserviertes Wort ist. Doh!

Lass dir das eine Lektion für diejenigen, die nicht liefern ihre Ist Code!

Andere Tipps

Wenn Prototypen .update () -Methode intern versucht, den .innerHTML zu setzen es in IE fehl. Im IE die .innerHTML eines Tabellenelement ist nur lesbar .

Quelle:

http: // webbugtrack .blogspot.com / 2007/12 / bug-210-no-innerHTML--Support-on-tables.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top