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

getValue/setValue存储问题

[复制链接]

该用户从未签到

3

主题

2

回帖

11

积分

助理工程师

积分
11
发表于 4 天前 | 显示全部楼层 | 阅读模式
悬赏2油猫币未解决

楼主正在实现一个高亮的功能,目前是把高亮的状态状态放到了setValue里面来实现切换Tabs的时候默认开启高亮。但现在有个问题是,当高亮状态为true的时候,关闭浏览器,再开启的话高亮就变成true了(希望默认是false),我找了找似乎没有能够检测浏览器开关的api。

这时有什么方法能让,在下一次打开浏览器使用脚本的时候,高亮状态变成false吗?以及,如果我开启了多个浏览器,这时高亮里面的状态会冲突吗?

  • TA的每日心情
    郁闷
    2025-7-22 00:22
  • 签到天数: 221 天

    [LV.7]常住居民III

    311

    主题

    4962

    回帖

    4610

    积分

    管理员

    积分
    4610

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 3 天前 | 显示全部楼层
    当一个tab开启高亮的时候,希望其它tab也高亮,但是重启浏览器的时候希望高亮默认是false?

    想不到这种API,油猴脚本做不到这种类似session的功能,如果你是只在一个域里面操作的话,你可以考虑使用 sessionStorage



    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情

    2025-8-16 01:57
  • 签到天数: 196 天

    [LV.7]常住居民III

    758

    主题

    6709

    回帖

    7360

    积分

    管理员

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

    积分
    7360

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 3 天前 | 显示全部楼层
    王一之 发表于 2025-9-21 11:00
    当一个tab开启高亮的时候,希望其它tab也高亮,但是重启浏览器的时候希望高亮默认是false?

    想不到这种API ...

    还有一种思路是当tab处于活跃的时候30s刷新一次value
    如果时间戳超过60s说明浏览器关闭过了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2025-7-22 00:22
  • 签到天数: 221 天

    [LV.7]常住居民III

    311

    主题

    4962

    回帖

    4610

    积分

    管理员

    积分
    4610

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 前天 09:49 | 显示全部楼层
    李恒道 发表于 2025-9-21 17:51
    还有一种思路是当tab处于活跃的时候30s刷新一次value
    如果时间戳超过60s说明浏览器关闭过了 ...

    也不是不行,但是如果没有tab的话,或者待机了之类的操作,也会被认为关闭
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情

    2025-8-16 01:57
  • 签到天数: 196 天

    [LV.7]常住居民III

    758

    主题

    6709

    回帖

    7360

    积分

    管理员

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

    积分
    7360

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 前天 22:05 | 显示全部楼层
    王一之 发表于 2025-9-22 09:49
    也不是不行,但是如果没有tab的话,或者待机了之类的操作,也会被认为关闭 ...

    突然想到后台脚本执行这个是不是更确定一些?
    可不可以在后台脚本留个变量跟正常脚本沟通
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2025-7-22 00:22
  • 签到天数: 221 天

    [LV.7]常住居民III

    311

    主题

    4962

    回帖

    4610

    积分

    管理员

    积分
    4610

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 昨天 09:43 | 显示全部楼层
    李恒道 发表于 2025-9-22 22:05
    突然想到后台脚本执行这个是不是更确定一些?
    可不可以在后台脚本留个变量跟正常脚本沟通 ...

    也可以,但是通信现在其实不是很好搞,而且要多脚本
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    2

    回帖

    11

    积分

    助理工程师

    积分
    11
    发表于 昨天 13:45 | 显示全部楼层
    李恒道 发表于 2025-9-22 22:05
    突然想到后台脚本执行这个是不是更确定一些?
    可不可以在后台脚本留个变量跟正常脚本沟通 ...

    我发现脚本里确实是做不到后半句

    当一个tab开启高亮的时候,希望其它tab也高亮,但是重启浏览器的时候希望高亮默认是false?


    前半句话因为希望是跨域,所以使用get/setValue+addValueChangeListener+pinia+watch做到了。

    后半句话我周末彻底研究了一下发现实现不了,所以我的就忽视掉了这个问题,把高亮状态存入getValue,打开脚本就保持上一次的高亮状态。不过这样的话,一旦页面的DOM过多,高亮的显示以及脚本的运行会出现非常明显的卡顿。

    目前卡顿问题也解决了,当然,是让GPT5老师解决的。我看了下大致是使用requestIdleCallback,setTimeout,的方式来降低运行时的渲染卡顿,高亮代码使用了分段优化。具体的实现过程,待我这周末开贴分享一下
    回复

    使用道具 举报

  • TA的每日心情

    2025-8-16 01:57
  • 签到天数: 196 天

    [LV.7]常住居民III

    758

    主题

    6709

    回帖

    7360

    积分

    管理员

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

    积分
    7360

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 5 小时前 | 显示全部楼层
    BigT 发表于 2025-9-23 13:45
    我发现脚本里确实是做不到后半句

    哥哥加油
    期待哥哥分享技术
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

    发表回复

    本版积分规则

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