开发者问题收集

在 document.write 元素之前无法将属性“onclick”设置为 null

2018-06-23
124

我做错了什么?如果这是重复的问题,请将我重定向到正确的问题,因为我找不到任何相关信息。

就这么简单:

我收到此错误: “ Uncaught TypeError:无法将属性‘onclick’设置为 null

在这段超级超级简单的代码中:

window.onload = function() {
  document.write('<input id="a" type="button" value="This is a button :)">');
  document.getElementById("a").onclick = alert("a");
}

这怎么可能? 问候。

2个回答

将单击按钮后运行的代码放入函数中将使 Javascript 将该函数与用户的操作“连接”起来。

window.onload = function() {
       document.write('<input id="a" type="button" value="This is a button :)">');
       document.getElementById("a").onclick = function() {
          alert("a");
       };
    }

否则,您可以使用代码中已定义的另一个函数,而不是创建新函数,但将 onclick event = 设置为不带括号的函数,如下所示。

function whenYouClick() {
	alert("a");
}

window.onload = function() {
document.write('<input id="a" type="button" value="This is a button :)">');
document.getElementById("a").onclick = whenYouClick;
}
Francesco
2018-06-23

您的代码可以改为:

window.onload = function() {
  document.write('<input id="a" type="button" value="This is a button :)">');
  document.getElementById("a").onclick = alert("a");
}

您可以使用:

window.onload = function() {
  document.write('<input id="a" type="button" value="This is a button :)">');
  document.getElementById('a').setAttribute('onclick','alert(0)');
}
Alper Gündöken
2018-06-24