上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

[油猴脚本开发指南]GM存储函数

[复制链接]

189

主题

1474

帖子

763

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
763
发表于 2021-10-15 21:45:57 | 显示全部楼层 | 阅读模式

前文

写了这么久突然发现还没正经讲过gm存储函数,今天跟大家一起学习一下!

GM_setValue

设置一个值,参数为值得名称以及值

GM_setValue(名称,值)

GM_getValue

获取一个值,参数有两个,一个值的名称,另一个为如果获取不到的默认值

GM_deleteValue

从存储之中删除名称,参数仅有一个,为值的名称。

GM_addValueChangeListener

对指定的名字进行监听,该函数返回一个id

该函数可以跨函数通信

格式为

GM_addValueChangeListener(name, function(name, old_value, new_value, remote) {

})

name为值的名称

函数的name也是

old_value为旧值

new_value为新值

remote区分这个值的改变的所属,如果是由本标签页引起的,则为false,如果由其他标签页引起的,为true。

为了方便理解我也写了一个小例子

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://www.baidu.com/
// @match        https://bbs.tampermonkey.net.cn/*
// @icon         https://www.google.com/s2/favicons?domain=tampermonkey.net.cn
// @grant        unsafeWindow
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_removeValueChangeListener
// @grant        GM_addValueChangeListener
// ==/UserScript==
let num=0
if(unsafeWindow.location.href.indexOf('bbs')!==-1){
    setInterval(
        ()=>{
            num++
            if(num%2===0){
                GM_setValue('test',num)

            }else{
                GM_deleteValue('test')
            }
        }
        ,5000)
}else{
    GM_addValueChangeListener('test',function(name, old_value, new_value, remote) {
        console.log('监听到了更改',name, old_value, new_value, remote)
    })

}

大家可以分别访问油猴中文网以及百度首页体验一下。

GM_removeValueChangeListener

移除一个监听器

GM_addValueChangeListener的函数会返回一个监听器的id

如果我们传给GM_removeValueChangeListener,则移除该监听器

类似于setinterval与clearinterval的关系

GM_listValues

列出存储的所有名称,无参数

结语

那么这里我们就大概学习了所有的存储函数

这节课就算完成了,非常水!

混的人。

87

主题

353

帖子

277

积分

版主

Rank: 7Rank: 7Rank: 7

积分
277

猫咪币纪念章活跃会员热心会员三好学生中秋纪念章国庆纪念章

发表于 2021-10-16 08:34:01 | 显示全部楼层
哥哥水好多
提及少年一词,应与平庸相斥!微信公众号——智家乐享
回复

使用道具 举报

发表回复

本版积分规则

快速回复 返回顶部 返回列表