muzuiget / monkey-support

Lightweight userscript manager
6 stars 1 forks source link

我有一些脚本需要手动单次执行 #6

Closed good1uck closed 2 days ago

good1uck commented 1 month ago

我有一个脚本需要单次执行,他是这样的:每次我手动点击一下,他会跳出一个警告框。我在浏览这个网页时,可能会随机地去点击一下。 但是当前wildmonkey点击一次后就不能再点击了,除非我重新刷新这个网页。

muzuiget commented 1 month ago

因为扩展是把代码注入到浏览器,然后浏览器会自动执行,因为已经注入过了,所以不会再次重复注入,看上去只能运行一次。

如果你要重复运行某段代码,应该把这这段代码包装成函数,然后通过其它方式触发,例如键盘事件:

const repeatCall1 = () => {
    alert('repeatCall1');
};

const repeatCall2 = () => {
    alert('repeatCall2');
};

window.addEventListener('keyup', (event) => {
    if (event.key === 'a') {
        repeatCall1();
        return;
    }
    if (event.key === 'b') {
        repeatCall2();
        return;
    }
});

按下 ab 时,会运行对应的函数。

good1uck commented 1 month ago

懂了懂了,谢谢。确实是这样。一开始没想清楚。