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

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

[复制链接]
  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 56 天

    [LV.5]常住居民I

    352

    主题

    3110

    帖子

    3115

    积分

    管理员

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    3115

    猫咪币纪念章国庆纪念章中秋纪念章荣誉开发者家财万贯管理员

    发表于 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

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

    结语

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

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

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
  • TA的每日心情
    擦汗
    2022-7-14 17:11
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    106

    主题

    462

    帖子

    619

    积分

    版主

    Rank: 8Rank: 8

    积分
    619

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

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

    使用道具 举报

    发表回复

    本版积分规则

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