【发布时间】:2015-08-13 18:39:02
【问题描述】:
属性值需要编码。 如果我要像这样构建一个 jQuery 对象:
$('<div data-value="' + value + '">');
真的,value 必须像这样进行属性编码:
$('<div data-value="' + HtmlAttributeEncode(value) + '">');
我找不到这样的原生函数。有人认为这只是用&quot; 替换双引号的问题,但微软的HttpEncoder.HtmlAttributeEncode 方法将这四个字符编码为& < " '。我似乎在这里看到了诸如quoteattr 之类的实现:https://stackoverflow.com/a/9756789/88409,但这是非常低效的,调用replace 来多次迭代字符串。同样,我需要一个用于编码 javascript 字符串的本机函数(例如 $('<div onclick="var s =\'' + HtmlAttributeEncode(JavaScriptStringEncode(value)) + '\';alert(s);"></div>).appendTo(body);
是否有与此功能等效的本机功能?
注意:请不要提及escape(现在不推荐使用encodeURI 和encodeURIComponent),所有这些都与属性编码无关。
【问题讨论】:
标签: html encoding attributes