页面刷新导致脚本重新运行
现在网页上有一个按钮,我必须点击,但是点击后网页后会自动刷新,然后再显示数据,这样导致我之前用GM_setValue设置的一些值由于脚本重新运行初始化了,比如说我用GM_setValue初始时设置了一个布尔值,为true,脚本运行到一半,设为false了,后面因为网页自动刷新,脚本重新运行,值又被脚本初始化为true,哥哥们,求解答,该怎么改? 这个实在太模糊了...描述一下你的理想行为是什么
let foo=GM_getValue('foo',true)
alert(foo)
GM_setValue('foo',foo=false)
alert(foo)
location.reload()
李恒道 发表于 2023-8-2 13:35
这个实在太模糊了...
描述一下你的理想行为是什么
我在脚本第一行写了
GM_setValue("initState", true);
然后脚本继续运行,在运行过程中,initState会被设置为false
GM_setValue("initState", false);
再之后会点击网页上的查询按钮,但是点了之后呢,网页会刷新(网址在刷新前后不变化),然后网页会显示查询后的数据,在这个刷新过程中,油猴脚本可能随着网页刷新重新运行了,又顺序执行了第一行的
GM_setValue("initState", true);
导致initState被重置了 HANJ2023 发表于 2023-8-2 16:20
我在脚本第一行写了
GM_setValue("initState", true);
楼上答得代码是你想要的吗
李恒道 发表于 2023-8-2 16:41
楼上答得代码是你想要的吗
不是,我哭了{:4_115:} 李恒道 发表于 2023-8-2 16:41
楼上答得代码是你想要的吗
算了,不管了,那这个无限循环刷新的问题该怎么处理?
(function() {
GM_setValue("bool",true)
console.log(GM_getValue("bool"))
location.reload() //刷新后脚本就从头开始执行,无限循环刷新,如何解决?
GM_setValue("bool",false)
console.log(GM_getValue("bool"))
})(); HANJ2023 发表于 2023-8-2 16:59
算了,不管了,那这个无限循环刷新的问题该怎么处理?
(function() {
他是在给你demo
你每次运行的时候根据得到的GM_getValue("bool")判断是否需要刷新就好了
你要根据自己的软件行为做设计和数据传输的
不能光看例子缝合 GM_getValue的第二个参数是默认值,即脚本存储里没有这个key时,取默认值,意思就是说你不需要setValue手动设置一个初始值,直接取值即可,可以避免反复初始化的问题。 按我理解你是不是可以使用sessionStorage来存储布尔值,这样在你本次浏览过程中布尔值设置了false不管页面怎么刷新去读取这个值都是false,直到你关闭页面重新打开,sessionStorage里面的数据会被自动清空,你读不到布尔值,默认为true
页:
[1]