将带有双引号和单引号的字符串从asp传递给javascript函数

时间:2016-08-03 13:47:08

标签: javascript string asp-classic escaping quotes

我有以下代码:

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函数?

1 个答案:

答案 0 :(得分:3)

使用Server.HTMLEncode()帮助程序:

Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", '" & Server.HtmlEncode(Replace(PropertyName,"'","\'")) & "')"" onclick=""""> </a>"

请参阅Documentation