前文
写了这么久突然发现还没正经讲过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
列出存储的所有名称,无参数
结语
那么这里我们就大概学习了所有的存储函数
这节课就算完成了,非常水!