这就是您如何正确创建锚点并完全避免逃避任何东西的需要。
var name = "Hi's",
anchor = document.createElement('a');
// should have an href
// links will be displayed differently by some browsers without it
anchor.href = '#';
// using onclick for pragmatic reasons
anchor.onclick = function() {
fun(name);
return false;
}
anchor.innerHTML = 'hello world';
// later
mydiv.appendChild(anchor);
顺便说一句,该onclick
属性根本不应该以开头"javascript:"
;这已经暗示了。
更新
如果你仍然对内联版本感兴趣,变量需要两步编码:
首先是正确序列化变量;我会用JSON.stringify()
它
二是HTML转义;最简单的形式是简单地用正确的编码值替换双引号。
例如:
var content = '<a href="#" onclick="fun(' +
JSON.serialize(name).replace(/"/g, '"') + ');">hello</a>';