2009-06-08 8 views
0

Es gibt andere Wege, um JS verbindet, abgesehen von diesem (dem üblichen) ..Unterstützen Browser häufig numerische Zitate in Attributen?

<script src="myscript.js" type="text/javascript"></script> 

... die anderen Kurstypen verwenden:

<script src=&#34;myscript.js&#34; type=&#34;text/javascript&#34;></script> 

Sind diese weit verbreitet in modernen Browsern unterstützt und ältere Browser wie IE6? Grundsätzlich ist es sicher, diese Methode zu verwenden, genauso wie Sie die normale Double-Quote-Methode verwenden würden?


Edit: Die HTML4 spec scheint es zu erlauben, aber ist es in praktischer Realität unterstützt?

3.2.2 Attributes 

    Authors may also use numeric character references to represent 
    double quotes (&#34;) and single quotes (&#39;). 

    For double quotes authors can also use the 
    character entity reference &quot;. 
+0

Abschnitt 3.2.2 spricht über die Attributwerte, nicht die Begrenzer. – elmuerte

+0

Nein, es spricht von den Trennzeichen ... see: "Standardmäßig erfordert SGML, dass alle Attributwerte durch doppelte Anführungszeichen begrenzt werden ... Autoren können auch" –

+0

"verwenden. Der Text in diesem Abschnitt ist etwas verwirrend, aber Der erste Teil des Absatzes stellt klar fest: "SGML verlangt standardmäßig, dass alle Attributwerte mit doppelten Anführungszeichen (ASCII-Dezimalzahl 34) oder einfachen Anführungszeichen (ASCII-Dezimalzahl 39) getrennt werden." Danach geht der Absatz darüber weiter, wie Sie im Wert des Attributs Zitate darstellen dürfen. Sie können beispielsweise "wenn die verwendeten Trennzeichen verwendet werden" oder "wenn die verwendeten Trennzeichen verwendet werden" verwenden oder Sie können immer die numerische Escape-Notation verwenden, um eine der beiden Formen darzustellen. – elmuerte

Antwort

7

Verwendung & # 34; statt "ist einfach falsch, hat es nicht die gleiche Bedeutung innerhalb der SGML und XML-Spezifikationen. Argument Werte von Elementen sollten entweder einzelne (') oder doppelte Anführungszeichen ("). In der alten Spezifikation SGML dieses Element

<foo bar=&#34;quux&#34; /> 

konnte mit dem Namen foo und Attribut mit dem Namen bar mit dem Wert "quux" als Element gelesen werden. Der Standard definiert jedoch, dass nicht mit einem Anführungszeichen versehene Attributwerte keine Escapezeichen enthalten dürfen. Und dieses Element

<foo bar="quux" /> 

sollte mit dem Namen foo und Attribut mit dem Namen bar mit dem Wert quux ohne Anführungszeichen als ein Element gelesen werden. Dies liegt daran, dass in SGML die Anführungszeichen optional sind und alles bis zum nächsten Leerzeichen als Wert für das Attribut verwendet wird.

XML erfordert Anführungszeichen.

+0

Also ist das okay in HTML und XHTML? Wird es erfolgreich geparst und verstanden? –

+0

Oder sollte ich es ohne solche Anführungszeichen schreiben:

0

Nur aus Neugier. Warum möchten Sie die codierten Varianten verwenden? In den meisten Texteditoren wird die Formatierung unterbrochen. Für mich wäre das sehr ärgerlich.

-2

Sie sollten bei den doppelten Anführungszeichen bleiben - ansonsten wird das Attribut möglicherweise nicht korrekt gelesen.

+0

"Könnte nicht stimmen" ... also soll ich dein Wort dafür nehmen und weggehen? –

+0

@Jenko - ja bitte! – Fenton

-2
<script src=myscript.js></script> 

ist gültig in HTML5 und von jedem wichtigen Browser nicht unterstützt.

+0

Nun, es muss ein absoluter Link sein ... also möchte ich: src =/path/to/script.js ... wäre das okay? –

2

Es gibt einen Unterschied zwischen einem Attributwertbegrenzer und einem Anführungszeichen oder Anführungszeichen.

Sie haben eine wörtliche verwenden "oder" Attributwerte zu begrenzen (außer wenn delimiters are optional). In diesem Fall wird die squence von Bytes bedeutet ‚Attributwert begrenzt‘ nicht ‚(double) Anführungszeichen‘

Die Zeichenreferenzen können verwendet werden, um ein (doppeltes) Anführungszeichen darzustellen, ist aber im Vergleich zur Verwendung eines Literals komplizierter und ineffizienter, sollte also nur verwendet werden, wenn das Literal nicht verfügbar ist (dh wenn es ein Attributwertbegrenzer wäre, weil Sie es sind) innerhalb eines Attributwerts, wobei das Anfangsbegrenzungszeichen dieses Zeichen war).