【发布时间】:2013-02-09 02:37:58
【问题描述】:
使用greasemonkey 添加这两个按钮。我试过颠倒顺序,它总是第二个添加的按钮有效。另一个按钮不会触发 onclick 事件。
// Add the click to chat button
mydiv = document.getElementById("optionalJobinfoData");
var btn = document.createElement("input");
btn.type = 'button';
btn.value = 'Click to Chat';
btn.onclick = function() { window.open(chatURL); };
mydiv.innerHTML += "<i>Notify Dispatch</i><br><i>(stuck on job)</i> ";
mydiv.appendChild(btn);
// Credentials button
mydiv = document.getElementById("optionalJobinfoData");
btn = document.createElement("input");
btn.type = 'button';
btn.value = 'Credentials';
btn.onclick = function() { window.open(credsURL); };
mydiv.innerHTML += "<br><br><i>DSL Credentials</i> ";
mydiv.appendChild(btn);
【问题讨论】:
-
element.onclick几乎不起作用,请改用addEventListener()。请查看this article -
@Teemu,你是对的(在 any 情况下,onclick 也是不好的做法),但遗憾的是,它有时在 Greasemonkey 1.0 或更大。直到沙盒模式发生变化并且脚本中断。在用户脚本案例中,它是“定时炸弹”编码的一个示例。暂时可能看起来还不错,但最终,它会让你受益。
-
@BrockAdams 好吧...实际上你今天早些时候教过我这个here :)。