0

以下のようなボタンがあります

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="clicked('R&#233;cup&#233;ration de frigorig&#232;ne')" />

そして以下のようなJavaScript関数

function clicked(s) {           
    confirm( s);
}

上記のコードは正常に動作しています。しかし、バックエンドからボタンに属性を追加すると、

Button1.Attributes.Add("OnClick", "clicked('R&#233;cup&#233;ration de frigorig&#232;ne')");

文字列をそのまま表示します(確認ボックスでUnicodeが変換されていません)。この理由は何ですか。そして、私はこれに対する解決策を得ていません。

4

2 に答える 2

0

サーバー側で実際の Unicode 文字を使用し、それを Button1 の属性として追加すると、ASP.NET はそれらを正しい HTML エンティティに自動的に変換します。

Button1.Attributes.Add("ClickMessage", "actual unicode chars not the encoded");
Button1.Attribute.Add("OnClick", "clicked(this.getAttribute('ClickMessage');");

このようにして、スクリプトを壊す可能性のある一重引用符または二重引用符が値に含まれていても、JavaScript は機能します。

于 2013-10-01T07:37:42.087 に答える