Javascript onclick函数调用问题:不会传递字符串

时间:2013-02-04 20:35:34

标签: javascript html web-applications

所以基本的纲要是,我正在尝试创建一种在我们的网络地图应用程序上标记不当内容的基本方法。 在用户点击某个点时动态创建webmap侧边栏内容的函数中,我有这段代码可以生成一个标记图像。

当用户单击该标志时,我想运行flagContent函数,该函数应该将url字符串传递给该函数。从这个函数中我将能够 稍后将它写入数据库(虽然我还没有做到这一点)。

以下是我一直在使用的一些代码段。:

1.这是生成标志图像的地方

content += "<p class='info'><img id='flag' onclick='flagContent(" + attachmentInfo.url + ")
'src='assets/flag.png' style='height:15px'>Flag as inappropriate...</p>";
  1. 这是连接功能

    function flagContent(imageUrl){console.log(imageUrl)}

  2. 所以基本上url是一个字符串,我希望能够在flagContent函数中操作它。不幸的是我无法让它发挥作用。当我传递一个数字参数,如 attachmentInfo.objectID 时,我不会遇到同样的问题。

    对于它的价值,我也会收到这个错误:

      

    Uncaught SyntaxError:意外的令牌:

    非常感谢任何帮助。如果有其他信息有助于解决此问题,请与我们联系。谢谢!

1 个答案:

答案 0 :(得分:13)

我假设attachmentInfo.url会返回一个URL,该URL应该是一个字符串,只需要用引号括起来。由于您已经使用过两种类型的引号,因此必须转义一些引号。

content += "<p class='info'>";
content += "<img id='flag' onclick=\"flagContent('" + attachmentInfo.url + "')\" src='file.png'/>";
content += "Flag as inappropriate...";
content += "</p>";

这样做会使最终的出局看起来像这样:

<p class='info'>
  <img id="flag" onclick="flagContent('http://example.com')" src='file.png'/>
  Flag as inappropriate...
</p>

你遇到的问题是网址没有被引号括起来,它看到flagContent(http://example.com)并且不知道如何处理那些不在字符串中的字。