![](/img/trans.png)
[英]HTML/Javascript proper way for an element to call a function onclick
[英]What is the proper way to encode the value of an onClick attribute on an HTML element?
我在 ASP .NET 页面上有一个 HTML 元素,它看起来像这样:
<input type="button" onclick="<%=GetOnClick(param1) %>" />
GetOnClick function 看起来像这样:
Function GetOnClick(param1 As String) As String
Dim onClick As String
onClick = "foo(" & JavaScriptEncode(param1) & ");"
Return HtmlAttributeEncode(onClick)
End Function
我在想我需要对 param1 变量进行 JavaScriptEncode(作为字符串 - 此方法添加单引号),然后对整个内容进行 HtmlAttributeEncode,因为我将它设置在 onClick 属性上。 我确信我可以在 90% 的情况下不使用所有这些编码,但这是最佳实践吗?
编辑:
布莱恩提出了一个很好的观点。 如果您可以控制 param1 包含的字符串,则无需对其进行编码。 但是,在这种情况下,它是用户输入,所以我需要非常小心。
答案取决于我们不知道的几件事...... param1 来自哪里? foo() 期待什么?
如果您要控制 param1 在后端包含的内容,您甚至真的不需要 JavaScriptEncode。 如果它来自某些用户输入,那么您当然需要对其进行清理或编码。 但是您也不应该需要对其进行两次编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.