我试图在JavaScript中创建一个可以设置HTML按钮的onClick属性的函数。

所以,说我有这个作为我的职能:

function myFunc(action){
    document.getElementById('mybtn').setAttribute("onClick", action);
}

这样会将mybtn的属性onClick设置为变量action(应该是一个函数)的内容。

因此,如果我运行如下函数:
myFunc(function(){
    alert("Hello, World!");
});

然后将变量action设置为
function (){
    alert("Hello, World!");
}

如果我如图所示运行myFunc,它将成功将action的内容添加到按钮的onClick属性中。唯一的问题是,如果在运行myFunc后单击该按钮,只会出现一个错误。它说:

未捕获到的SyntaxError:意外 token (

我认为这是因为在onClick属性中,无法定义新功能。

我如何只获取action变量中的函数内部内容?

最佳答案

您可以添加事件侦听器,而不用像这样更改onclick的属性:

function myFunc(action) {
  document.getElementById('mybtn').addEventListener('click', action);
}

myFunc(function() {
  alert('foo');
});
<button id="mybtn">Foo</button>

10-07 19:38
查看更多