我正在创建一个网页,每当我点击由以下代码生成的生成表格的一行时,我想发出警报。为了做到这一点,我使用setAlert(消息)函数。 我的问题是它只在设置为函数的参数是整数时才有效。当它是一个字符串时它不起作用。 帮我解决这个问题。
谢谢。
@Component( provide = MailboxListener.class, properties = { "service.ranking = 10"})
public class LogMailboxListener implements MailboxListener {
private final AtomicReference<Log> logRef = newAtomicReference <Log> () ;
public void messagesArrived ( String mboxName, Mailbox mbox, long [ ] ids ) {
Log log = logRef.get();
if (log != null )
log.log(Log.INFO, ids.length + "message(s) arrived in mailbox " + mboxName, null);
else
System.err.println("No log available!");
}
@Reference( service = Log.class, dynamic = true, optional = true )
public void setLog(Log log) {
logRef.set(log);
}
public void unsetLog(Log log) {
logRef.compareAndSet(log, null);
}
}
答案 0 :(得分:3)
这里的问题是您将参数传递到setAlert
函数而不定义引号。现在,因为您使用&#34; 来定义onClick
并使用&#39; 来制定html,您需要使用撇号转义传递参数 \&#39; 。
目前,如果post['itm_code']
为1,则会生成以下带有效javascript的html:
<tr onClick="setAlert(1)"><td>
但是如果post['itm_code']
是一个字符串&#34;我的字符串&#34;,它将使用无效的javascript呈现以下html:
<tr onClick="setAlert(my string)"><td>
以下一行:
<tr onClick="setAlert('+post['itm_code']+')"><td>
应更改为:
<tr onClick="setAlert(\''+post['itm_code']+'\')"><td>