3

これはクロムで 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 が定義されていません」というエラーが返されます。

var x="hi.", b;
(b = document.createElement("button")).innerHTML = "click me";
b.onclick = function(){alert(x)}; // Works on FF/Chrome
document.body.appendChild(b);

これを引き起こす 2 つのブラウザの違いは何ですか?

4

1 に答える 1