用灵犀写油猴脚本,通过ntfy.sh实现消息的订阅/发布

wils
wils Lv.4 核心创作者

Lv.4 核心创作者

简单的说,就是让网页,接收你的消息

可以是wps的js宏,也可以是binary eye这样的app,只要它能发post请求。。。

如图,在wps表格里,点击单元格,会自动向浏览器里的表单填写对应内容:

而js宏里只有这一句

function Workbook_SheetSelectionChange(Sh, Target)
{
    fetch('https://ntfy.sh/wils', {
        method: 'POST',
        body: Range(`A${Target.Row}`).Resize(1, 2).Value2.flat().join(',')
    })
}

简单的说,就是向ntfy.sh的wils主题,发送一条POST消息

完全可以改用curl命令、或binary eye这样的扫码输入app等等


剩下的就是给在线表单这样的网页,做个油猴脚本了

直接让灵犀:

  • 写个油猴脚本,通过SSE方式连接到ntfy.sh/wils/sse,收到的json里的message字段,是类似“xxx,yyy”这样以逗号分割的两个字段,每次收到消息,用react兼容的方式,向前两个textarea.ant-input分别填写两个字段

有两点比较重要:

一是react兼容的填写表单的方法,我得到的是这个,可以用

function setTextareaValue(textarea, value) {
        const lastValue = textarea.value;
        textarea.value = value;
        const event = new Event('input', { bubbles: true });
        event.simulated = true;
        const tracker = textarea._valueTracker;
        if (tracker) {
            tracker.setValue(lastValue);
        }
        textarea.dispatchEvent(event);
    }

二是SSE连接到服务,我得到的大概这样

const es = new EventSource(NTFY_URL);

        es.addEventListener('message', function (e) {
            try {
                const data = JSON.parse(e.data);
                if (data.event === 'message' && data.message) {
                    fillFields(data.message);
                }
            } catch (err) { /* 忽略无法解析的数据 */ }
        });

总的来说很简单,灵犀一次就写好了油猴脚本,js宏里也只用上面那一句,就实现了将自己的应用和网页连起来,特别适合自动填写表单查询等需求,真是令人满意🎉

海南省
浏览 111
收藏
9
分享
9 +1
1
+1
全部评论 1
 
猪宝儿
猪宝儿 Lv.1 新人创作者

Lv.1新人创作者

过来支持一下
   浙江省
举报
0
0