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

标签 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();

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

谢谢

最佳答案

改变:

sbtn.onClick = sdefaults();

到:

sbtn.onClick = sdefaults;

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

btn.onClick = sdefaults;意思是:“将 sbtn.onClick 设置为函数 sdefaults”,这就是您要查找的内容。

关于Javascript 的 object.onClick 运行函数而不是设置 onClick,如何防止这种情况发生并只执行函数 onClick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389380/

相关文章:

javascript - ui.columnIndex 在 igGridHiding columnShowing 事件中未定义

javascript - 如何使页面真正重新加载

javascript - 如何在循环中创建一个元素并将它(一个一个地添加 5 次)到特定的 div?

每秒 svg 的 Javascript setAttribute

javascript - Angular Directive(指令)内的 jquery 日期选择器

javascript - 如何在 Javascript 中将查询字符串传递到 Google Sheets API v4

javascript - 如何在单击按钮时将第一个字母设置为大写

javascript - (document.evaluate) -> src of image 包含多个条件,怎么样?

javascript - 在 Javascript 中使用特殊键进行按键操作

javascript - JavaScript 中的错误代码?