getValue/setValue存储问题
楼主正在实现一个高亮的功能,目前是把高亮的状态状态放到了setValue里面来实现切换Tabs的时候默认开启高亮。但现在有个问题是,当高亮状态为true的时候,关闭浏览器,再开启的话高亮就变成true了(希望默认是false),我找了找似乎没有能够检测浏览器开关的api。这时有什么方法能让,在下一次打开浏览器使用脚本的时候,高亮状态变成false吗?以及,如果我开启了多个浏览器,这时高亮里面的状态会冲突吗?
当一个tab开启高亮的时候,希望其它tab也高亮,但是重启浏览器的时候希望高亮默认是false?
想不到这种API,油猴脚本做不到这种类似session的功能,如果你是只在一个域里面操作的话,你可以考虑使用 sessionStorage
王一之 发表于 2025-9-21 11:00
当一个tab开启高亮的时候,希望其它tab也高亮,但是重启浏览器的时候希望高亮默认是false?
想不到这种API ...
还有一种思路是当tab处于活跃的时候30s刷新一次value
如果时间戳超过60s说明浏览器关闭过了 李恒道 发表于 2025-9-21 17:51
还有一种思路是当tab处于活跃的时候30s刷新一次value
如果时间戳超过60s说明浏览器关闭过了 ...
也不是不行,但是如果没有tab的话,或者待机了之类的操作,也会被认为关闭 王一之 发表于 2025-9-22 09:49
也不是不行,但是如果没有tab的话,或者待机了之类的操作,也会被认为关闭 ...
突然想到后台脚本执行这个是不是更确定一些?
可不可以在后台脚本留个变量跟正常脚本沟通 李恒道 发表于 2025-9-22 22:05
突然想到后台脚本执行这个是不是更确定一些?
可不可以在后台脚本留个变量跟正常脚本沟通 ...
也可以,但是通信现在其实不是很好搞,而且要多脚本 李恒道 发表于 2025-9-22 22:05
突然想到后台脚本执行这个是不是更确定一些?
可不可以在后台脚本留个变量跟正常脚本沟通 ...
我发现脚本里确实是做不到后半句
当一个tab开启高亮的时候,希望其它tab也高亮,但是重启浏览器的时候希望高亮默认是false?
前半句话因为希望是跨域,所以使用get/setValue+addValueChangeListener+pinia+watch做到了。
后半句话我周末彻底研究了一下发现实现不了,所以我的就忽视掉了这个问题,把高亮状态存入getValue,打开脚本就保持上一次的高亮状态。不过这样的话,一旦页面的DOM过多,高亮的显示以及脚本的运行会出现非常明显的卡顿。
目前卡顿问题也解决了,当然,是让GPT5老师解决的。我看了下大致是使用requestIdleCallback,setTimeout,的方式来降低运行时的渲染卡顿,高亮代码使用了分段优化。具体的实现过程,待我这周末开贴分享一下 BigT 发表于 2025-9-23 13:45
我发现脚本里确实是做不到后半句
哥哥加油
期待哥哥分享技术
页:
[1]