我有以下代码:
PropertyID = 101
PropertyName = "My'complex" property name"" //This is passed from sql query
Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", '" & PropertyName & "' )"" onclick=""""></a>"
问题是,如果我的变量中有单引号或双引号,则javascript函数会刹车(这是正常的)。
我试图这样逃避他们:
Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", '" & Replace(Replace(PropertyName,"'",""),"""","") & "' )"" onclick=""""> </a>"
这不会破坏函数,但是会从字符串中删除引号,而我需要它们。
我也尝试过String.row
这样:
Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", String.raw`"& PropertyName &"` )"" onclick=""""> </a>"
仍然没有成功,但是也许我用错了方式。
还有其他方法可以传递字符串并将其保持不变,而不会破坏javascript函数吗?
使用Server.HTMLEncode()
助手:
Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", '" & Server.HtmlEncode(Replace(PropertyName,"'","\'")) & "')"" onclick=""""> </a>"
请参阅说明文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句