【油猴脚本】对于脚本卸载后仍存在影响的一个不负责任的猜想

油猴子从入门到喵喵喵喵(实例:9/9 完结) 继续讨论:

他们举报我的脚本弹窗,我对此也表示理解:

0005

他们又说我的脚本卸载之后还弹窗,这我就不理解了,我真有那个能耐,怎么会还在这里苦哈哈的写脚本招骂呢。

但,不止一个人说脚本卸载之后依旧弹窗的,这就……奇怪!

在这里我做一个可能的猜想,没有经过验证,所以不负责任。只是或许大概是这个样子的吧。

某网站使用了 PWA 功能,这个功能可以把网页资源缓存在本地,节省流量,加快加载速度。大部分情况下我们也认为这是一个很好的技术。但是,这个技术并不是那么好控制的,而它的缓存比一般意义上的缓存要强力好多。就意味着用的不好,可能把资源缓存到用户那里后就不能对资源再进行更新了(我自己弄网页就经常搞出这种情况)。也可能因为页面没发生变化,所以一直没有必要更新,就是缓存之后再没更新过。

油猴呢,是将脚本注入页面,伪装成页面原本的代码,然后实现我们需要的操作。启用脚本时,脚本管理器负责管理注入。卸载后,脚本管理器就不再向页面中注入此脚本。这里并不会有一个消除影响的回退操作,一般也没有回退的必要,并且似乎也无法实现。

那如果,这个页面恰巧把注入的脚本当作页面本身的代码,又被 PWA 功能缓存下来,而这个页面的缓存又长期不更新。就有可能导致脚本卸载后打开这个页面依旧运行这个脚本。

虽然我感觉实现的条件很苛刻,应该难以遇到,但是几个人这么讲,我又找不到更合理的解释,只能姑且认为是类似的情况吧。

记录下来,万一有人遇到类似的情况,这里可以提供一个思路。如果真是这样,清理网站缓存可以解决。

我选择了删掉最后一段代码. :crazy_face:

我是自己用不上,否则大概也会选择如此。(主要是就算自己用都懒得把过去的规则转换为适用新脚本的规则……