我试图通过href调用javascript函数(不带参数)它工作正常但是同样的函数调用(带参数)它通过错误意外结束输入
infowindow.setContent("<table><tr><th>Name</th><td><a href='javascript:Institute('"+code+"')'>" + text + "</a></td></tr><tr><th>IP Address</th><td>" + ip + "</td></tr><tr><th>Code</th><td><a href='javascript:Institute();'>" + code + "</a></td></tr></table>");
答案 0 :(得分:2)
这应该有效:
function(doc) {
if(doc._conflicts)
emit(doc._id, doc);
emit(doc._id, {oldNumber: doc.phonenumber, newNumber: doc.phonenumber, name: doc.name});
}
这样,结果HTML对于标记属性使用双引号(infowindow.setContent('<table><tr><th>Name</th><td><a href="javascript:Institute(\''+code+'\')">' + text + '</a></td></tr><tr><th>IP Address</th><td>' + ip + '</td></tr><tr><th>Code</th><td><a href="javascript:Institute();">' + code + '</a></td></tr></table>');
),对JavaScript字符串使用单引号("
),这是确保不会发生冲突的最佳方法。
为了演示,这会使用'
和document.write()
,但如果您点击运行代码段
alert()
答案 1 :(得分:1)
您的报价有问题。
使用:<a href='javascript:Institute(\'"+code+"\')'>
如果您使用网络浏览器中的HTML调试器,则可以轻松找到它。
答案 2 :(得分:0)
infowindow.setContent('<table><tr><th>Name</th><td><a href="javascript:Institute(\""+code+"\");' + text + '</a></td></tr><tr><th>IP Address</th><td>' + ip + '</td></tr><tr><th>Code</th><td><a href="javascript:Institute();">' + code + '</a></td></tr></table>');