我有一个简单的html页面,里面有div元素。 div的innerHTML属性通过查询String设置。 在查询字符串中,我传递html字符串,即
<p style='font-size:20px;color:green;'> Sun rises in the east </p> etc...
我得到了合适的输出。
但是,如果我在样式属性中传递颜色代码,请说#00990a,我没有显示任何内容。
有人可以帮我解决这个问题吗?
答案 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