如何在包含(',“)的Javascript函数中传递动态字符串

时间:2013-12-18 07:07:07

标签: javascript jquery html rss

我正在使用RSS Feed。我想将链接和标题传递给像这样的Javascript函数。

'<a href="javascript:void(0)" onclick="shareFb(\''+item.link+'\',\''+item.title+'\')"></a>'

此item.link和item.title是动态生成的。如果链接包含一些像(facebook's)等的单词..那个(')单引号和其他一些字符会产生问题而浏览器控制台会抛出错误uncaught syntaxerror: unexpected identifier.如果我传递的标题和链接包含纯文本然后我可以将这些作为参数传递。是否有任何想法让它发挥作用。

4 个答案:

答案 0 :(得分:1)

试试这个:

'<a href="javascript:void(0)" onclick="shareFb(\''+encodeURIComponent(item.link)+'\',\''+encodeURIComponent(item.title)+'\')"></a>'

答案 1 :(得分:0)

在项目标题中,将'的匹配项替换为\'

更改

item.title

item.title.replace('\'', '\\'')

答案 2 :(得分:0)

就像你说的,有问题的人物。在服务器端,尝试转义item.link和item.title。

在C#中,您将使用:HttpUtility.UrlEncode,例如。在JavaScript中,您将使用encodeURI()。然后,当您想要解码参数时,请使用decodeURI()。

答案 3 :(得分:0)

在item.link中,您可以使用encodeURIComponent

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_encodeuricomponent