在 JavaScript 确认窗口中将 Unicode 转换为字符
本文关键字:Unicode 转换 字符 JavaScript 确认 窗口 | 更新日期: 2023-09-27 18:33:21
>我有一个如下所示的按钮
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="clicked('Récupération de frigorigène')" />
和如下所示的 JavaScript 函数
function clicked(s) {
confirm( s);
}
上面的代码工作正常。但是当我将属性从后端添加到按钮时,例如,
Button1.Attributes.Add("OnClick", "clicked('Récupération de frigorigène')");
它按原样显示字符串(Unicode 未在确认框中转换)。这是什么原因呢!.而且我没有得到解决方案。
只需自己对属性进行 HTML 解码,因为它看起来像 ASP.NET 会自动将其转换为前端代码,但在从后端代码添加它时不会:
Button1.Attributes.Add("OnClick", "clicked('" +
HttpUtility.HtmlDecode("Récupération de frigorigène" + "')");
在服务器端使用实际的 unicode 字符并将其添加为 Button1 的属性,ASP.NET 自动将它们转换为正确的 HTML 实体。
Button1.Attributes.Add("ClickMessage", "actual unicode chars not the encoded");
Button1.Attribute.Add("OnClick", "clicked(this.getAttribute('ClickMessage');");
这样,即使值包含可能破坏脚本的单引号/双引号,您的 javascript 仍然可以工作。