2013-02-04 62 views
3

所以基本的概要是,我试图创建一个在我们的Web地图应用程序中标记不适当内容的基本手段。 在用户点击某个点时,为动态创建Web地图侧栏的内容的函数中,我有这段代码应该生成一个标志图像。Javascript onclick函数调用问题:不会传递字符串

当用户点击标志时,我想运行函数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. 这是所连接的功能

    功能flagContent(imageUrl){console.log(imageUrl)}

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

对于什么是值得我也收到此错误:

Uncaught SyntaxError: Unexpected token :

任何帮助将不胜感激。让我知道是否有其他信息可以帮助解决这个问题。谢谢!

+1

'attachmentInfo.url'评估的是什么? – Floris

+0

是'高度:15px'导致问题?并且'flagContent('“+ attachmentInfo.url +'')' – hunter

+0

验证正在生成的HTML。 flagContent()的字符串参数也必须在Javascript中引用。 – devio

回答

11

我假设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),不知道是什么的问题用那些不是字符串的单词来处理。

+0

工程就像一个魅力!感谢您的帮助 – user1270657

+0

非常感谢您从长久以来一直困扰着我...... – Shaz

相关问题