Funktionieren HTML5 benutzerdefinierte Datenattribute in IE 6?

168

Benutzerdefinierte Datenattribute: Ссылка

Wenn ich "Arbeit" sage, meine ich, wenn ich HTML so habe:

%Vor%

wird das folgende JavaScript:

%Vor%

erzeugt in IE 6 eine Warnung mit "geoff de geoff" drin?

    
Paul D. Waite 09.03.2010, 22:09
quelle

6 Antworten

151

Sie können Werte von benutzerdefinierten (oder eigenen) Attributen mit getAttribute abrufen. Folgen Sie Ihrem Beispiel mit

%Vor%

Ich kann den Wert von data-geoff mit

ermitteln %Vor%

Siehe MSDN . Und obwohl es dort erwähnt wird, dass Sie IE7 benötigen, um dies zu arbeiten, habe ich dies vor einiger Zeit mit IE6 getestet und es funktionierte korrekt (auch im Quirks-Modus).

Aber das hat natürlich nichts mit HTML5-spezifischen Attributen zu tun.

    
Marcel Korpel 09.03.2010, 22:56
quelle
141

Ja, sie funktionieren.

IE hat getAttribute() von IE4 unterstützt, was jQuery intern für data() verwendet.

%Vor%

Sie können also entweder die Methode .data() von jQuery oder die JavaScript-Funktion plain vanilla verwenden:

Beispiel-HTML

%Vor%

JavaScript

%Vor%

jQuery

%Vor%     
Marko 17.04.2011 21:12
quelle
9

IE6 unterstützt nicht nur das HTML5-Datenattribut-Feature, sondern tatsächlich kein aktueller Browser unterstützt sie! Die einzige Ausnahme im Moment ist Chrome.

Sie können absolut data-geoff="geoff de geoff" als Attribut verwenden, aber nur Chrome der aktuellen Browser-Versionen gibt Ihnen die .dataGeoff -Eigenschaft.

Glücklicherweise können alle aktuellen Browser - einschließlich IE6 - unbekannte Attribute mit der Standardmethode DOM .getAttribute() referenzieren, so dass .getAttribute("data-geoff") überall funktioniert.

In sehr naher Zukunft werden neue Versionen von Firefox und Safari anfangen, die Datenattribute zu unterstützen, aber da es einen vollkommen guten Zugang gibt, der in allen Browsern funktioniert, gibt es wirklich keinen Grund, den HTML5 zu verwenden Methode, die nur für einige Ihrer Besucher funktioniert.

Sie können mehr über den aktuellen Stand der Unterstützung für diese Funktion unter CanIUse.com erfahren.

Ich hoffe, das hilft.

    
Spudley 28.06.2011 13:59
quelle
7

Ich denke, IE hat dies immer unterstützt (zumindest ab IE4) und Sie können von JS auf sie zugreifen. Sie wurden Expando-Eigenschaften genannt. Siehe alter MSDN-Artikel

Dieses Verhalten kann deaktiviert werden, indem die expando -Eigenschaft für ein DOM-Element auf false gesetzt wird (standardmäßig ist dies der Fall, sodass die Eigenschaften expando standardmäßig funktionieren).

Bearbeiten: Die URL wurde korrigiert

    
Timores 09.03.2010 22:13
quelle
4

Wenn Sie alle benutzerdefinierten Datenattribute auf einmal wie die Dataset-Eigenschaft in neueren Browsern abrufen möchten, können Sie Folgendes tun. Das ist, was ich in ie7 + gemacht habe und gut für mich funktioniert.

%Vor%     
user1767210 30.08.2013 20:14
quelle
0

In IE6 funktioniert es möglicherweise nicht. Zur Referenz: MSDN

Ich schlage vor, jQuery für die meisten Fälle zu verwenden:

%Vor%

Versuchen Sie dies in Ihrer Codierung.

    
HTML5 developer 11.03.2015 09:12
quelle