脚本重载功能
ScriptCat改进建议 https://bbs.tampermonkey.net.cn/thread-7031-1-1.html (出处: 油猴中文网)
能不能让猫做一个重载脚本的功能,每次修改代码调试都需要刷新页面来重载脚本,比较麻烦,遇到一些流媒体网站刷新一次要等好久,或者一些特定场景进入时常比较久,很多时间被浪费了
mv3后续计划
这个很简单啊,。油猴脚本就可以,vscode修改后一键复制,然后想办法(AHK配合扩展功能),自动切换浏览器 执行剪贴板中的脚本。这需要将脚本设计成支持热重载,即重载前自己把监听器等东西卸载了,才好重载啊。
坑也挺多的。
原本的方式:我让ahk复制vscode后,粘贴到devtools里面回车运行。
现在我的方式是:1. 随便一个扩展里增加快捷键 ->ahk复制文本,切换,发送快捷键 ->扩展收到指令,读取剪贴板,发送消息给user.js -> 页面上的油猴脚本(user.js)收到消息,先尝试eval执行event.传过来的脚本,不行的话,再返还给扩展,重新使用 tabs.executeScript
话说用户脚本是怎么执行的?tabs.executeScript 是隔离的沙箱环境,而油猴能直接修改真实的window?
@KnIfER 用户的意思应该是脚本更新之后,就自动刷新页面,方便调试,而不是从脚本层面去做
用户脚本是运行在页面上的,通过Proxy构建了一个隔离的沙箱环境
@KnIfER 用户的意思应该是脚本更新之后,就自动刷新页面,方便调试,而不是从脚本层面去做
用户脚本是运行在页面上的,通过Proxy构建了一个隔离的沙箱环境
看他意思,和我需求是一样的,就是避免刷新,直接更新脚本逻辑。
不是 tabs.executeScript?unsafeWindow 可以和原页面一个环境的。
@KnIfER 又读了一下原文,好像是哥哥说的意思,我理解错了。。。。
那这样的话,脚本管理器层面就不好做了,就如哥哥说的,很多东西需要卸载,兼容问题应该挺多的
tabs.executeScript是注入到content环境,然后由content又再将脚本注入到原页面的,所以unsafeWindow才可以和原页面一个环境的。不过mv3后,好像是可以直接注入到原页面了