所以基本的总结是,我正在尝试创建一种在我们的网络 map 应用程序上标记不适当内容的基本方法。
在用户单击某个点时为 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>";
function flagContent(imageUrl){ console.log(imageUrl)}
所以基本上 url 是一个字符串,我希望能够在 flagContent 函数中操作它。不幸的是,我无法让它工作。当我传递一个数字参数(如附件信息.objectID)时,我不会遇到同样的问题。
对于它的值(value),我也收到了这个错误:
任何帮助将不胜感激。如果有其他信息可以帮助解决此问题,请告诉我。谢谢!
最佳答案
我假设 attachmentInfo.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>
你遇到的问题是 URL 没有被引号包围,它看到
flagContent(http://example.com)
并且不知道如何处理那些不在字符串中的裸词。关于Javascript onclick 函数调用问题 : won't pass a string,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14695149/