所以基本的总结是,我正在尝试创建一种在我们的网络 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/

    10-11 23:35
    查看更多