Javascript Number-String DIV onclick奇怪的转换

时间:2015-09-06 22:07:43

标签: javascript facebook

我基本上做的是将一个人的Facebook-ID分配给DIV中的onclick-Event。 div是一个字符串本身,因为我稍后通过innerHTML

将它分配给DOM属性
"<div onclick='openFbFriend(" + friendsArray[i]['facebookID'] + ");' class='row'>";

现在openFbFriend只是打开这个人的Facebook页面:

function openFbFriend(fbID) {
    window.open("https://www.facebook.com/" + fbID, "_blank");
}

对大多数人有用吗?我现在经历的是一些链接坏了我将重定向,例如到此页面:https://www.facebook.com/10204840506352732

我调查并且非常奇怪但是当FB-ID长于或等于17位数时,我的字符串从div变为openFbFriend并加上或未成为1.这怎么可能发生? fb-id永远不会转换为数字,并且始终是一个字符串。所以,如果我在console.log之后的fbid,则id是正确的。但是......当点击时会发生奇怪的事情,因为如果fbid&gt; = 17digits而不是openFbFriend则为+ -1。 任何帮助表示赞赏:)!

2 个答案:

答案 0 :(得分:2)

也许你应该尝试

"<div onclick='openFbFriend(\"" + friendsArray[i]['facebookID'] + "\");' class='row'>";

因为如果参数周围没有\",那么它将被解释为整数,或者如果它包含非数字字符,那么它将导致错误。

结果字符串为:

<div onclick='openFbFriend("10204840506352732");' class='row'>

但在您的版本中:

<div onclick='openFbFriend(10204840506352732);' class='row'>

答案 1 :(得分:0)

现在我快速猜测并用

修复它
    \"


    "<div onclick='openFbFriend(\"" + friendsArray[i]['facebookID'] + "\");' class='row'>"

我认为它被转换为没有\&#34;的数字。但我不明白为什么。也许某人可以解释一下? THX