1

来源(.Net 3.5)

  output.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert(\"In order to prevent loss of your work, you may only use the progress grids within the same section.\");return false");

在浏览器中渲染:

<a onclick="alert(&quot;In order to prevent loss of your work, you may only use the progress grids within the same section.&quot;);return false" href="myPage.aspx#1">

这意味着 JavaScript 不会执行。

同样,如果我用单引号替换内部引号,它会转义为 '

在 IIS 版本 7 上运行

它似乎与浏览器无关(IE 8,9 FF 15、Safari 7、Chrome)

导致这种情况发生的要么是 IIS,要么是 .Net 配置。

当然,有趣的是它昨晚运行良好,现在坏了。

有没有办法抑制这种行为?

4

1 回答 1

0

这意味着 JavaScript 不会执行。

不,它没有。它防止"数据中的字符终止 HTML 属性值。

HTML 解析器会将 HTML 解码为文本(转化&quot;"等)并将其传递给 JavaScript 解析器。

有没有办法抑制这种行为?

将第三个参数 ( fEncode) 设置AddAttribute为 false。这将破坏您的 HTML(以及您的脚本)。

于 2012-08-31T16:26:53.510 回答