这应该工作:
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>');
这样的结果HTML有标签的属性和单引号('
)为JavaScript字符串,这是为了确保不发生冲突的最佳途径双引号("
)。
为了演示,这里采用document.write()
和alert()
在代替,但如果你点击运行的代码片段
var code = 'The Code';
var text = 'The Text';
var ip = 'The IP';
document.write('<table><tr><th>Name</th><td><a href="javascript:alert(\''+code+'\')">' + text + '</a></td></tr><tr><th>IP Address</th><td>' + ip + '</td></tr><tr><th>Code</th><td><a href="javascript:alert(\'empty string\');">' + code + '</a></td></tr></table>');
你是如何传递参数的工作? – Nitish
在JavaScript中混合使用JavaScript中的字符串来制作带有JavaScript的HTML是令人头疼的秘诀。不要这样做。使用DOM。使用'createElement'。使用'createTextNode'。使用'appendChild'。使用'addEventListener'。你的代码将更加冗长,但无限理解,调试和维护。 – Quentin
我只是很好奇:在href而不是onclick事件中做这件事有什么好处吗? – Niko