gpt4 book ai didi

javascript - SettimeOut 间隔失败,出现 "Cannot convert undefined or null to object"

转载 作者:数据小太阳 更新时间:2023-10-29 05:56:35 24 4
gpt4 key购买 nike

我正在使用 tampermonkey 编写用户脚本,但无法解决此错误,我们将不胜感激。

我检测到按键很好,空格键会触发此功能,只要按键保持在向下位置,它就会重复自身。控制台正常写入输出大约 30 秒,然后出现 TypeError。

根据声誉限制,这是一个屏幕截图:

用户脚本:

// ==UserScript==
// @name TEST STUFF--------------------
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @run-at document-start
// @include http://*
// @include https://*
// @grant none
// ==/UserScript==

( function()
{
'use strict';
window.addEventListener ( "keydown", CaptureKeyPress );
window.addEventListener ( "keyup", CaptureKeyPress );
var Hotkeys =
{
perform: 32
};
var HotkeyToggle = false;
function CaptureKeyPress ( a )
{
if ( a.keyCode == Hotkeys.perform )
{
a.preventDefault();
a.stopPropagation();
a.cancelBubble = true;
a.stopImmediatePropagation();

if ( a.type == "keydown" && !HotkeyToggle )
{
console.clear();
HotkeyToggle = true;
perform();
}

if ( a.type == "keyup" && HotkeyToggle )
{
HotkeyToggle = false;
}
}
}
function perform()
{
if(HotkeyToggle == false) // exit
{
return 0
}
//do stuff...

console.info("working...");
if(HotkeyToggle == true) // continue after everything completes
{
setTimeout(() => {
perform()
}, 280);
return 0
}
return 1
}
} ) ();

最佳答案

这要么是特定于 TamperMonkey 的问题,要么是 Chrome 本身的新安全策略/错误 - 我遇到了同样的事情并在调试器中发现了它,并且没有一个参数是空的/未定义的; setTimeout 未被覆盖。

编辑:有问题的用户脚本和我正在调试的用户脚本之间的一个共同特征是 setTimeout 的“递归”使用。我将其更改为 setInterval,在我的情况下似乎已经修复了它。 enter image description here

关于javascript - SettimeOut 间隔失败,出现 "Cannot convert undefined or null to object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55329629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com