GM.getValue 未定义
GM.getValue is undefined
我写了一个小用户脚本,它最初只用于一个网页,现在我添加了更多功能,我试图让脚本在多个站点上工作,据我所知,我必须从 localStorage
到 GM.getValue
,但无法正常工作。
我已经知道函数是异步的,我必须使用它。所以为了让这个函数更好地了解,我写了一个 lil' testscript 但仍然没有成功 - 所以也许有人可以帮助我。
我 GM.setValue 开始工作,所以如果我检查 Tampermokey 脚本标签,我会看到我在存储中有这个脚本:
{
"WFP_token": "123456789"
}
用户脚本是
// @grant GM.getValue
// @grant GM.setValue
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
(function() {
'use strict';
/**
* Overall script parts are placed here
*/
console.log('[WFP]: init');
function getToken() {
(async () => {
let token = GM.getValue("WFP_token",-1);
if (token != -1 && token != undefined) {
return token;
} else {
window.setTimeout(getToken(),10)
}
})();
}
const WEBHOOK_TOKEN = getToken();
console.log('[WFP]: '+WEBHOOK_TOKEN);
控制台输出为:
[WFP]: init
[WFP]: undefined
有人可以帮助我并指出我错在哪里以及我应该使用谁 GM.getValue
?
在 GM.getValue
、getToken()
和 return 附近使用 await 在 setTimeout
其他情况下的承诺
(async function() {
'use strict';
/**
* Overall script parts are placed here
*/
console.log('[WFP]: init');
async function getToken(a) {
let token = await GM.getValue("WFP_token", -1);
if (token != -1 && token != undefined) {
return token;
} else {
return new Promise((resolve) => {
window.setTimeout(() => resolve(getToken()), 10);
})
}
}
const WEBHOOK_TOKEN = await getToken();
console.log('[WFP]: ' + WEBHOOK_TOKEN);
})();
我写了一个小用户脚本,它最初只用于一个网页,现在我添加了更多功能,我试图让脚本在多个站点上工作,据我所知,我必须从 localStorage
到 GM.getValue
,但无法正常工作。
我已经知道函数是异步的,我必须使用它。所以为了让这个函数更好地了解,我写了一个 lil' testscript 但仍然没有成功 - 所以也许有人可以帮助我。
我 GM.setValue 开始工作,所以如果我检查 Tampermokey 脚本标签,我会看到我在存储中有这个脚本:
{
"WFP_token": "123456789"
}
用户脚本是
// @grant GM.getValue
// @grant GM.setValue
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
(function() {
'use strict';
/**
* Overall script parts are placed here
*/
console.log('[WFP]: init');
function getToken() {
(async () => {
let token = GM.getValue("WFP_token",-1);
if (token != -1 && token != undefined) {
return token;
} else {
window.setTimeout(getToken(),10)
}
})();
}
const WEBHOOK_TOKEN = getToken();
console.log('[WFP]: '+WEBHOOK_TOKEN);
控制台输出为:
[WFP]: init
[WFP]: undefined
有人可以帮助我并指出我错在哪里以及我应该使用谁 GM.getValue
?
在 GM.getValue
、getToken()
和 return 附近使用 await 在 setTimeout
其他情况下的承诺
(async function() {
'use strict';
/**
* Overall script parts are placed here
*/
console.log('[WFP]: init');
async function getToken(a) {
let token = await GM.getValue("WFP_token", -1);
if (token != -1 && token != undefined) {
return token;
} else {
return new Promise((resolve) => {
window.setTimeout(() => resolve(getToken()), 10);
})
}
}
const WEBHOOK_TOKEN = await getToken();
console.log('[WFP]: ' + WEBHOOK_TOKEN);
})();