2010-12-28 24 views
2

Ich möchte einen Platz zum Speichern von Markup für meine Tooltips. Ich dachte an data-* Attribute, es funktioniert, aber ich frage mich, ob seine falsch oder kann zu Problemen führen ...Ist es in Ordnung HTML in HTML-Attribute zu setzen?

<a href="#" 
    title="You can edit project details like name & description" 
    data-tip="<h6>Edit Project</h6><p>You can edit project details like name &amp; description here</p>"> 
    Edit 
</a> 

Antwort

3

Das ist in Ordnung; Ein kleiner Nebeneffekt ist, dass data-* Eigenschaften in HTML 4 ungültig sind. Es gibt nichts, was Sie dagegen tun können, außer dass Sie eine andere vorhandene Eigenschaft verwenden, was normalerweise schlimmer ist, als die Validierung nicht zu bestehen.

Escaping > zu &gt; wird empfohlen, um Probleme mit fehlerhaften HTML-Parsern zu verhindern. Source

Escaping &-&amp; wie Sie bereits notwendig tun, ist für sie gültigen HTML zu sein (wenn die & nicht gefolgt von einem Leerzeichen und bildet somit eine Einheit, prost @bobince)

Offensichtlich Sie Muss escape " zu &quot;, um das Brechen des HTML zu verhindern.

+0

Eigentlich können Sie entkommen, ohne zu entkommen '&' entweder, in diesem Fall. Wenn ein Leerzeichen (oder verschiedene andere Zeichen) folgt, ist das nicht deklarierte '&' gültig. Offensichtlich ist es absolut nicht ratsam und in XHTML nicht gültig, aber das gleiche gilt auch für das Verlassen von '' '. – bobince

+0

Wohl sollte die '&' in der Spitze wirklich geschrieben werden als '& amp;', weil es HTML-Markup * innerhalb * einer anderen Schicht von HTML-Markup ist! Argh. Ich denke, ich würde dies als ein separates gezeigtes/verstecktes Element einschließen, anstatt es in einem Attributwert zu verstecken. – bobince

0

Attribute analysierten Daten enthalten können (einschließlich Zeichenreferenzen), so HTML in einem benutzerdefinierten Attribut hält, ist in Ordnung.

Die Probleme, die ich sehen kann, ist mit dem Beenden der Zeichenfolge früh. Solange du Zitate buchstabierst, wird es dir gut gehen.

Verwandte Themen