-1

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

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

我得到了适当的输出。

但是,如果我在样式属性中传递颜色代码,例如 #00990a,则不会显示任何内容。

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

4

2 回答 2

0

既然你没有给我们看任何代码,我猜……</p>

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


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

于 2012-05-05T07:29:44.930 回答
0

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

最后你的网址应该是这样的:

PageUrl?Content=%3Cp+style%3D%27color%3A%23009900%27%3EContent%3C%2Fp%3E
于 2012-05-05T07:33:37.417 回答