0

我正在尝试将 Javascript 函数添加到 asp:Panel 的 onLoad 事件中。它是这样的:

string clickFunction = "$('[id*=lblHiddenPageArray]').text('');"

PagesPanel.Attribues.Add("onLoad", clickFunction);

我将此功能附加到其他控件(复选框和按钮),它工作正常。但是在 PagesPanel(我的 asp:Panel 控件)中,它对函数进行了 HTMLEncode。输出源如下所示:

onLoad="$('[id*=lblHiddenPageArray]').text('');

我尝试在作业中对其进行 Server.HTMLDecode,但我得到了同样的结果。我之前在.net 4.0中遇到过这个问题。当然有办法逃脱角色或其他什么?

4

1 回答 1

0

我认为这是正确的行为。属性值在被执行之前未被浏览器编码。一个简单的例子:

<!DOCTYPE html>
<html>
    <head>
        <title>foo</title>
    </head>
    <body onload="alert(&#39;foo&#39);">
        <p>foo</p>
    </body>
</html>

以防万一您由于某种原因无法在脑海中对事物进行非 HTML 编码;-),Firefox 中的 Firebug、Safari 和 Chrome 中的 WebKit 检查器以及 Opera 中的 Dragonfly 会自动为您完成。

于 2010-08-27T21:59:08.297 回答