在 Javascript 中,我正在尝试创建一个用户脚本,该脚本将自动单击“蓝色按钮”。通常,我会这样做:
var bluebutton = "document.getElementById("blue_button")"
if (bluebutton) {
bluebutton.onclick();
}
但是现在,蓝色按钮没有自己明显的 ID。它的 ID 是随机的,可以是button1、button2或button3。
这是我正在谈论的 HTML:
<div class="button_slot">
<div id="button1" style="cursor:pointer; padding-left:30px" onclick="buttonsubmit('button1')" onmouseover="infopane.display('Blue Button','I'm a blue button!')" onmouseout="infopane.clear()">
<div class="button_slot">
<div id="button2" style="cursor:pointer; padding-left:30px" onclick="buttonsubmit('button2')" onmouseover="infopane.display('Red Button','I'm a red button!')" onmouseout="infopane.clear()">
<div class="button_slot">
<div id="button3" style="cursor:pointer; padding-left:30px" onclick="buttonsubmit('button3')" onmouseover="infopane.display('Yellow Button','I'm a yellow button!')" onmouseout="infopane.clear()">
经过一番阅读,我得出结论,将我的 onclick() 指向正确的元素/字符串的唯一方法是使用“.toString().match(name)”,如下所示:
function clickbutton(name) {
var button_list = document.querySelectorAll('.button_slot > div');
for (var i=0; i<button_list.length; i++) {
var button = button_list[i];
if (button.onmouseover && button.onmouseover.toString().match(name)) {
button.onmouseover();
button.onclick();
break;
}
}
}
clickbutton('Blue');
(注意:有时我使用clickbutton('Red');或clickbutton('Yellow');只是为了体验)
现在问题来了。这种方法非常有效......有时,我的脚本完全错过了按钮(例如,没有点击任何东西)即使其中肯定有一个带有单词“Blue”的字符串。
如果有人能找出我做错了什么,或者甚至提出更有效的方法,我将不胜感激!谢谢!