冲洗篡改猴子的变化

Flush tampermonkey changes

我正在尝试创建一个 Tampermonkey 脚本以使用我的用户名和密码自动填写登录表单,然后我想单击登录按钮。但是,使用下面的代码,它似乎等待三秒钟,然后将文本填充到框中。我怎样才能 "flush" 更改以便它们在等待时间到来之前出现?

谢谢!

(function() {
    'use strict';
     function wait(ms){
           var start = new Date().getTime();
           var end = start;
           while(end < start + ms) {
                end = new Date().getTime();
           }
     }
     window.onbeforeunload = function (){
     return "Leaving page...";
     }
     $(document).ready(function() {
         document.getElementById("username").value = "userValue";
         document.getElementById("password").value = "passwordValue";
         wait(3000);
         document.getElementsByClassName("btn-large").click();
     });
})();

wait 函数正在锁定浏览器选项卡(可能还有浏览器,可能还有整个计算机)。不要那样写代码!

还有:

  1. (function() {... 在 Tampermonkey 脚本中完全是多余的。
  2. $(document).ready(function()... 没有帮助,除非在此处不适用的极少数情况下。
  3. Lots,   lots   more,等等...

这是重构后的代码:

window.onbeforeunload = function () {
    return "Leaving page...";
}
//-- Hacker easter egg!  See linked questions.
document.getElementById ("username").value = "userValue";
document.getElementById ("password").value = "passwordValue";

setTimeout (clickBtnAfterDelay, 3000);

function () {
    //-- Brittle!  See linked questions.
    document.getElementsByClassName ("btn-large")[0].click ();
}