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

[脚本猫开发]油猴脚本与后台脚本交互

[复制链接]

70

主题

682

帖子

596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
596

猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章

发表于 2021-9-2 11:30:54 | 显示全部楼层 | 阅读模式

之前有朋友和我聊了一下刷课脚本,我想到了一个比较新的模式,前端提交任务,然后使用后台脚本来进行任务的执行,使用http封包的技术,这样可以不用再在前台挂着浏览器,并且资源大大节省。(平台也是这种技术)

怎么实现是个问题,于是想到了油猴的这个API:GM_addValueChangeListener可以监听值的变化,脚本猫的话实现了同一个namespace(已更新为storageName )之间的共享Value,感觉可以利用这个特性去实现 油猴脚本与后台脚本的一个通信交互,例子如下:

不过觉得应该可以有一套更好的API来实现前后端脚本的交互,后续继续考虑一下去。

// ==UserScript==
// @name         前端任务提交脚本
// @namespace    test
// @version      0.1.0
// @description  try to take over the world!
// @author       You
// @match        https://bbs.tampermonkey.net.cn/*
// @grant        GM_setValue
// ==/UserScript==

let btn = document.createElement('button');
btn.innerText = "提交一个任务给后台脚本";

btn.onclick = () => {
    GM_setValue('task', '任务详情...');
    alert('任务提交成功');
}

document.querySelector('#diymsg1').append(btn);
// ==UserScript==
// @name         后端任务处理脚本
// @namespace    test
// @version      0.1.0
// @description  try to take over the world!
// @author       You
// @grant        GM_notification
// @grant        GM_addValueChangeListener
// @background
// ==/UserScript==

return new Promise((resolve, reject) => {
    GM_addValueChangeListener("task", (name, oldVal, newVal, remote) => {
        console.log(name, oldVal, newVal, remote);
        GM_notification({
            title: "任务处理",
            text: newVal,
        });
    })
});
上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥

126

主题

376

帖子

447

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
447

猫咪币纪念章三好学生活跃会员热心会员突出贡献中秋纪念章

发表于 2021-9-2 13:39:53 | 显示全部楼层
没时长。。。?
Vx:rsnhkx2015  公众号:陈公子的话
回复

使用道具 举报

70

主题

682

帖子

596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
596

猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章

发表于 2021-9-2 13:41:35 | 显示全部楼层
小陈 发表于 2021-9-2 13:39
没时长。。。?

什么意思 哥哥?
上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
回复

使用道具 举报

70

主题

682

帖子

596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
596

猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章

发表于 2021-9-2 14:08:53 | 显示全部楼层
小陈 发表于 2021-9-2 13:39
没时长。。。?

哦哦 刷课时间的时长?这种也完全可以用模拟封包的方法去做
上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
回复

使用道具 举报

1

主题

15

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2021-9-3 07:58:23 | 显示全部楼层
刷课的帖子太长了,怕你看不见,在这里问:学习通换新版了,各项功能还都是正常支持的吗?
回复

使用道具 举报

70

主题

682

帖子

596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
596

猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章

发表于 2021-9-3 09:25:35 | 显示全部楼层
ChHN 发表于 2021-9-3 07:58
刷课的帖子太长了,怕你看不见,在这里问:学习通换新版了,各项功能还都是正常支持的吗? ...

不支持,且可能不会更新了
其实不是看不见。。。是不想弄了。。。
上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
回复

使用道具 举报

1

主题

15

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2021-9-7 15:16:34 | 显示全部楼层
王一之 发表于 2021-9-3 09:25
不支持,且可能不会更新了
其实不是看不见。。。是不想弄了。。。

嗯 , 理解 , 毕竟是兴趣使然 , 看以后谁有能力来接力一下吧
回复

使用道具 举报

发表回复

本版积分规则

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