我正在尝试存储一些值,这些值将在 Greasemonkey 中通过页面加载和浏览器关闭持续存在。我的代码如下:
// @name Netflix saw it button
// @description Apparently Netflix can't afford enough storage space or programmers to make it easy to know which shows you've seen before. This fixes that. Unfortunately, it will only store data in one browser at a time so you have to use the same computer and browser for the data to store. Sorry about that, but I'm not a Netflix tech so this is the best we got.
// @version 1
// @include https://www.netflix.com/*
// @grant none
// @grant GM.getValue
// @grant GM.setValue
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// ==/UserScript==
$(document).ready(function() {
$('[data-tracking-uuid]').each(function(){
id= $(this).data('tracking-uuid');
console.log(id);
console.log(typeof id);
GM.setValue(id,1);
console.log(GM.getValue(id));
if(GM.getValue($(this).data('tracking-uuid')))
$(this).closest('.title-card-container').addClass('g_watched');
});
});
如您所见,我正在测试持久存储,但它并没有给我预期的结果。当我检查控制台时,我可以看到 id 并且 id 的类型是字符串(GM.setValue 需要)。在它尝试设置值的下一行,它停止执行 JS 并且没有其他行运行。没有错误被抛出。它只是死了。
当我在那里没有 setvalue 而只有 getvalue 时也是一样的(如果之前没有设置它应该返回 null )。我究竟做错了什么?这是 Greasemonkey > 4.0 所以这应该是正确的语法,但没有任何错误或反馈,我被卡住了。