这会在Chrome中提醒x,但不会在firefox(Chrome 25.0 / FF 11.0)上提醒:
var x="hi.", b;
(b = document.createElement("button")).innerHTML = "click me";
b.setAttribute("onclick", "alert(x)"); // Doesn't work on FF, but works on Chrome
document.body.appendChild(b);
当我使用DOM(b.onclick,如下面的代码)时,它既可以使用,也可以在字符串形式中使用属性时返回“x not defined”错误,就像上面的代码一样。
var x="hi.", b;
(b = document.createElement("button")).innerHTML = "click me";
b.onclick = function(){alert(x)}; // Works on FF/Chrome
document.body.appendChild(b);
导致此问题的两个浏览器之间有什么区别?
答案 0 :(得分:1)
这应该适用于FF和Chrome,但不适用于IE,你需要实际传递变量吗?
var x="hi.", b;
(b = document.createElement("button")).innerHTML = "click me";
b.setAttribute("onclick", "alert('"+x+"')");
document.body.appendChild(b);
在IE的旧版本中,据我所知,你无法使用setAttribute设置内联javascript。
FIDDLE(在FF 19和最新的Chrome中测试过)