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

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

最佳答案

使用Server.HTMLEncode()帮助器:

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

参见Documentation

关于javascript - 将带有双引号和单引号的字符串从 asp 传递到 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38745482/

相关文章:

javascript - 无法将项目添加到数组

javascript - 匹配字符串中模式的出现并在 javascript 中插入字符?

regex - Swift 从字符串中提取字符串

visual-studio - Visual Studio 2012 和经典 ASP 缩进(智能)

iis-7 - 带有 IIS 日志的内部服务器错误 500

mysql - 将以下内容更改为带条件的参数化查询

javascript - 如何动态创建服务器上保存的文件的下载链接?

javascript - $watch 监听器被调用一次而不改变表达式

c# - 测试 NULL 并在需要时返回一个字符串 - 优点/缺点是什么

javascript - jQuery 数据表 - x 秒后更新 "Processing..."消息?