用灵犀写油猴脚本,通过ntfy.sh实现消息的订阅/发布
wils
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宏里也只用上面那一句,就实现了将自己的应用和网页连起来,特别适合自动填写表单查询等需求,真是令人满意🎉
Lv.1新人创作者