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

use*_*657 3 html javascript web-applications

所以基本的纲要是我正在尝试创建一种在我们的Web地图应用程序中标记不适当内容的基本方法.在用户点击某个点时动态创建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>";
Run Code Online (Sandbox Code Playgroud)
  1. 这是连接功能

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

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

为了它的价值我也得到这个错误:

未捕获的SyntaxError:意外的令牌:

任何帮助将不胜感激.如果有其他信息有助于解决此问题,请与我们联系.谢谢!

CBa*_*arr 13

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

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

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

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

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