将带有双引号和单引号的字符串从 asp 传递到 javascript 函数
Pass a string with double and single quotes from asp to javascript function
我有以下代码:
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>"
我有以下代码:
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>"