Javascript参数传递单个撇号

时间:2014-03-31 10:50:25

标签: javascript

我用js插入内容,其中包括对函数的onclick调用。此函数传递一个包含数据库条目的参数,该条目可能包含'

var action = '<a href="#" class="facebook-share" onclick="facebookWallPost(\' '+name+'\')">Share</a>';

麻烦的是,当name包含单个撇号时,它会中断函数调用。我已尝试在名称上执行字符串替换,将'替换为&#39;,但浏览器似乎仍会将其转换回'

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

使用escape()或JavaScript 1.5版之后。改为使用encodeURI()或encodeURIComponent()。

答案 1 :(得分:0)

不要通过将字符串与其他代码混合在一起来编写代码。你在JavaScript里面的HTML里面有JavaScript,这是一个令人头疼的秘诀。

改为使用DOM操作。

var a = document.createElement('a');
a.href = "#"; // You should use a button instead of a link to the top of the page
a.className = "facebook-share";
a.addEventListener('click', function () {
    facebookWallPost(name);
});
a.appendChild(
    document.createTextNode('Share');
);