2012-03-29 93 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