发表于 2021-8-31 23:11:11

crontab表达式如果小白看不懂不会设置的话可以直接去https://www.matools.com/cron在线生成

Lucky_M 发表于 2021-9-1 15:28:21

本帖最后由 Lucky_M 于 2021-9-1 15:29 编辑

一之大佬    牛逼

cxxjackie 发表于 2021-9-2 12:26:05

试着写了一下定时脚本,发现几个问题:
1、定时脚本无法使用console.log,也不能debugger,只能通过GM_log去翻日志,调试体验不太好,特别是查看一些较长的对象时。
2、GM_xhr不支持将responseType设置为text、json等,只能自己做转换,这可能与一些油猴脚本发生兼容问题。
3、定时脚本中发生错误不会终止脚本的运行,也不输出任何错误信息,普通脚本中GM_xhr上的某些参数错误也会造成这个问题(比如responseType,我调试了很久才确定的问题)。油猴和原生的xhr在处理不支持的responseType时会选择忽略,不知道脚本猫是什么情况。
4、加了connect以后还是会弹出跨域提示,应该是插件的权限问题,点了总是允许后,想改设置却找不到设置的地方了。

王一之 发表于 2021-9-2 13:51:43

> cxxjackie 发表于 2021-9-2 12:26
> 试着写了一下定时脚本,发现几个问题:
> 1、定时脚本无法使用console.log,也不能debugger,只能通过GM_log ...

1.console.log/debugger是运行环境问题,这个可以在扩展页面,打开background.html去调试和查看console.log信息和调试脚本

!(data/attachment/forum/202109/02/134345onqlfdtcnn2vlfkl.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

2.GM_xhr这些兼容会逐步去推进,现在还没完全的兼容,现在的respond好像是会自动转换成json。

不过现在是可以设置`responseType`可以看看哥哥的代码么?

3.API的错误处理确实没做好,会尽量去完善吧,另外后台脚本是用的try去捕捉错误,如果是异步的话catch不到也会有问题,这个暂时不太好做到。

4.connect的描述和域名是否对应,能不能看一下哥哥的表达式呢?改设置的话,暂时没开发完,在弄中

谢谢哥哥提出的这些问题,这就去完善掉!

王一之 发表于 2021-9-2 18:42:02

cxxjackie 发表于 2021-9-2 12:26
试着写了一下定时脚本,发现几个问题:
1、定时脚本无法使用console.log,也不能debugger,只能通过GM_log ...

4点是个bug,找到修复了

cxxjackie 发表于 2021-9-2 18:48:52

王一之 发表于 2021-9-2 13:51
> cxxjackie 发表于 2021-9-2 12:26
> 试着写了一下定时脚本,发现几个问题:
> 1、定时脚本无法使用co ...

1、从插件页调试这个...有点违反直觉吧。
2、就是令responseType等于"text"或"json"后脚本会直接失去响应,有些链接返回的默认是文本实际是json,比如这个https://tieba.baidu.com/dc/common/tbs。
3、不止是异步,在Promise之外随便写个未声明的变量也会造成无响应,我自己用try包起来就能捕获到,所以感觉很奇怪。
4、上传了一个脚本,我改完以后的。

王一之 发表于 2021-9-2 21:40:17

cxxjackie 发表于 2021-9-2 18:48
1、从插件页调试这个...有点违反直觉吧。
2、就是令responseType等于"text"或"json"后脚本会直接失去响应 ...

1.好像是有点反直觉。。。只能去实际的执行环境运行,后续应该能迁移到脚本的编辑页面F12来进行调试

2.这个好像也是bug,已经处理了。

3.这个我再看看,如果能try到应该是可以处理的

4.感谢哥哥!

王一之 发表于 2021-9-2 21:42:42

cxxjackie 发表于 2021-9-2 18:48
1、从插件页调试这个...有点违反直觉吧。
2、就是令responseType等于"text"或"json"后脚本会直接失去响应 ...

也是尽力想与油猴兼容,降低学习和迁移成本

王一之 发表于 2021-9-2 21:49:40

cxxjackie 发表于 2021-9-2 18:48
1、从插件页调试这个...有点违反直觉吧。
2、就是令responseType等于"text"或"json"后脚本会直接失去响应 ...
测试了一下2

油猴和脚本猫都是返回的text


// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @descriptiontry to take over the world!
// @author       You
// @match      https://bbs.tampermonkey.net.cn/
// @icon         https://www.google.com/s2/favicons?domain=tampermonkey.net.cn
// @grant      GM_xmlhttpRequest
// @grant      GM_notification
// @connect      tieba.baidu.com
// ==/UserScript==

GM_xmlhttpRequest({
            url: 'https://tieba.baidu.com/dc/common/tbs',
            method: 'get',
            timeout: 10000,
            onload: res => console.log(res)
      });


cxxjackie 发表于 2021-9-2 22:02:14

王一之 发表于 2021-9-2 21:49
测试了一下2

油猴和脚本猫都是返回的text

我知道,我的意思是说这种情况可以设置responseType为json,这样就不用做JSON.parse了,但是脚本猫设置不了,所以我一开始被这个问题卡住了
页: 1 [2] 3 4 5 6
查看完整版本: [脚本猫开发指南]脚本猫基础概念介绍