2012-03-29 105 views
2

內逸出&符號我使用具有以下TAL模板:防止重氮從屬性

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

其中view.src返回包括查詢字符串&符號的URL。

該模板呈現此罰款,但經過重氮後,&符號逃脫爲& amp;

我該如何防止Diazo做到這一點?

回答

1

模板正在返回無效的HTML - CDATA腳本和樣式標記以外的&符號應該被編碼爲實體(http://htmlhelp.com/tools/validator/problems.html#amp)。 HTMLParser可以猜出你的意思,但是序列化程序在出路時正確地編碼了數據,並且沒有辦法避免這種情況。

注意,這僅僅是數據的HTML編碼,來舉個例子:

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

值iframe的src屬性的http://example.com?foo=1&baz=2

+0

然後我的問題是,我需要提供無效的HTML,以便IE加載正確的URL值。 – 2012-03-29 18:59:27

+0

至少在IE7以下工作:''test me'' – 2012-03-29 23:29:15

+0

我能找到解決這個問題的唯一參考的快速搜索不涉及雙重逸出被http://nedbatchelder.com/blog/200812 /accidental_html_entities_in_urls.html - 並涉及JavaScript。也許嘗試把它切割成一個最小可重現的html文件。 您可以使用''<替換內容=「中的''''手動輸出html打開和關閉標記。 iframe「>''雖然也許只是用'';''替換'&''會做伎倆。 – 2012-03-29 23:56:56