0

asp:Panel の onLoad イベントに Javascript 関数を追加しようとしています。次のようになります。

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

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

この機能を他のコントロール (チェックボックスとボタン) にアタッチしていますが、正常に動作しています。しかし、PagesPanel (私の asp:Panel コントロール) では、関数を HTMLEncodes します。出力ソースは次のようになります。

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 に答える