2012-03-29 10 views
2

Ich benutze eine Vorlage mit dem folgenden TAL:Prevent Diazo von Et-Zeichen in einem Attribut zu entkommen

<iframe tal:attributes="src view/src" /> 

wo view.src eine URL mit Et-Zeichen einer Abfragezeichenfolge einschließlich zurückgibt.

Die Vorlage macht das gut, aber nach Durchlaufen von Diazo sind die Und-Zeichen entkommen wie & Ampere;

Wie kann ich verhindern, dass Diazo dies tut?

Antwort

1

Die Vorlage gibt ungültigen HTML-Code zurück - außerhalb des CDATA-Skripts und der Style-Tags sollten Et-Zeichen als Entitäten codiert werden (http://htmlhelp.com/tools/validator/problems.html#amp). Der HTMLParser kann erraten, was Sie meinen, aber der Serializer codiert die Daten korrekt auf dem Weg nach draußen und es gibt keine Möglichkeit, dies zu vermeiden.

Beachten Sie, dass dies nur die HTML-Codierung von Daten, um ein Beispiel zu nehmen:

<iframe src="http://example.com?foo=1&amp;baz=2" /> 

Die Wert des src-Attributs der iframe http://example.com?foo=1&baz=2 ist.

+0

Dann ist mein Problem, dass ich ungültige HTML liefern muss, damit IE den korrekten Wert für die URL lädt. –

+0

Mindestens in IE7 folgende Arbeiten: '' test me '' –

+0

Der einzige Hinweis, den ich für dieses Problem in kurzer Suche finden konnte, die nicht doppelt haben beinhalten entkam http://nedbatchelder.com/blog/200812 /accidental_html_entities_in_urls.html - und das hat Javascript involviert. Vielleicht versuchen Sie es auf eine minimale reproduzierbare Beispiel-HTML-Datei zu schneiden. Sie könnten die html öffnen und schließen Tags manuell mit '' '' in einem '' ' 'obwohl vielleicht' '&' 'mit' '' 'ersetzen würde, würde den Trick machen. –