Javascript的object.onClick运行函数而不是设置onClick,我该如何防止这种情况发生并只执行onClick函数?

1 javascript greasemonkey setattribute

我有以下代码:

function sdefaults()
{
   alert("test");
}

var btnpos, sbtn;
btnpos = document.getElementsByName('somePosition')[0];
sbtn = document.createElement('input');
btnpos.parentNode.insertBefore(sbtn, btnpos.nextSibling);
sbtn.type = "button";
sbtn.name = "social";
sbtn.value = "Defaults";
sbtn.onClick = sdefaults();
Run Code Online (Sandbox Code Playgroud)

按钮出现在我想要的位置,并且名称/值设置正确.但是,当我加载页面时,sdefaults()运行该功能,然后如果我单击该按钮,则没有任何反应.任何人都可以提供任何有关如何防止该函数在加载时运行并强制它仅运行onclick的任何见解?

谢谢

Jos*_*osh 8

更改:

sbtn.onClick = sdefaults();
Run Code Online (Sandbox Code Playgroud)

至:

sbtn.onClick = sdefaults;
Run Code Online (Sandbox Code Playgroud)

sbtn.onClick = sdefaults();表示:"运行该sdefaults函数并将结果存储在中sbtn.onClick.

btn.onClick = sdefaults;意思是:"设置sbtn.onClick为功能sdefaults",这是你正在寻找的.