在查询字符串中传递样式参数

时间:2012-05-05 07:27:43

标签: html

我有一个简单的html页面,里面有div元素。 div的innerHTML属性通过查询String设置。 在查询字符串中,我传递html字符串,即

<p style='font-size:20px;color:green;'> Sun rises in the east </p> etc...

我得到了合适的输出。

但是,如果我在样式属性中传递颜色代码,请说#00990a,我没有显示任何内容。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

由于您没有向我们展示任何代码,我猜...

在URI中,#表示片段标识符的开头(因为?表示查询字符串的开头)。您的颜色将终止查询字符串并启动片段标识符。您需要对URL中具有特殊含义的任何字符进行URL编码。 (#%23)。


确保您清理服务器上传递的HTML和CSS。否则很容易让自己暴露于XSS攻击。

答案 1 :(得分:0)

如果有一个包含#的颜色代码,那么之后的所有内容都将被视为片段标识符。要避免这种情况,您必须对参数值进行url-encode(将#替换为%23,并对具有特殊含义的其他字符(@&%=?#...)执行相同操作。

最后你的网址应如下所示:

PageUrl?Content=%3Cp+style%3D%27color%3A%23009900%27%3EContent%3C%2Fp%3E