这是 JavaScript 中的错误吗? http://jsfiddle.net/SommerEngineering/mr8sZ/
<a href='javascript:test("test")'>Works</a><br/>
<a href='javascript:test("test"")'>Does not work</a>
看起来 JS 进入字符串,将 "
转换回 "
,然后尝试执行命令,这当然是错误的。
最佳答案
你是对的。你在那里写的是html,所以html实体"e;
被渲染为双引号"
,然后作为JavaScript执行。因为test("test "");
不是有效的 javascript,这将引发错误。如果您想将 test"
传递到函数中,您可以像这样转义引号:test("test\"");
内联 JavaScript 不是一个好的实践,并且存在大量不直观的问题。阅读其中一些结果: Why is inline JS bad?
以下是如何正确执行此操作的示例。
var a = document.getElementById('myElem');
a.addEventListener('click', function() {
test('test"');
});
请注意,获取元素引用的方法有很多,您可能希望使用类并在循环中附加处理程序。
关于javascript - 内联JS,如何转义函数参数中的引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064906/