求把 console.re 放入油猴脚本的方法

2018-01-20 14:35:11 +08:00
 keepsome

平时经常开着浏览器脚本挂机,远程查看很不方便,所以希望能有一个实时同步 log 的工具

目前发现一个比较好用而且免费的站console.re
通过 //console.re/connector.js 可以实时显示 log,还能设置不同等级,比如 console.re.log() console.re.error()

目前根据官网提示构建网页脚本能正常记录,但是在油猴脚本里就无法成功,各种提示 undefined
connector.js 也无法被 @require

所以希望大佬能写一个示例脚本,谢谢

4639 次点击
所在节点    JavaScript
6 条回复
caomu
2018-01-20 15:00:11 +08:00
调试网页的话,是不是应该把脚本注入到页面中?因为油猴脚本是运行在沙盒里的,环境变量都是不共享的。
keepsome
2018-01-20 16:44:49 +08:00
@caomu 我想通过 console.re 实时查看油猴脚本运行结果和错误日志,不是想调试网页
vizards
2018-01-20 17:51:19 +08:00
这个简单啊,示例脚本:
https://gist.github.com/Vizards/f133a852eb6b4eea23238d778233d084

监控地址: http://console.re/bf8e-4fa7-a2dc
tampermonkey 监控的页面是: https://www.baidu.com
8qwe24657913
2018-01-20 18:11:17 +08:00
@vizards 的方法只适用于 grant none 的情况,"各种提示 undefined"的话肯定不是 grant none,进了 Xray vision / isolation world
迂回的方法也不是没有,需要在 connector.js 之前往 DOM 里放个元素

// @require data:text/javascript,{let s=document.documentElement.appendChild(document.createElement('script'));s.dataset.channel='YOUR-CHANNEL-NAME';s.id='consolerescript'}
// @require https://console.re/connector.js

不想动 DOM 的话请 hook document.getElementById 等方法……


PS: 这样无法发布到 greasyfork 上,因为它只允许白名单内的脚本
PPS: github 上的版本和实际引入的版本不一样这点坑了我一把……
keepsome
2018-01-20 21:18:00 +08:00
@vizards 感谢,grant none 下通过,大部分脚本可以追踪了

@8qwe24657913 感谢补全,这个方法看起来很强大,不能发布到 greasyfork 那也没办法,放 github 上就行
Arnie97
2018-01-21 14:15:20 +08:00
@caomu 虽然 GreaseMonkey 是沙盒,但一些其他的 User Script 管理器可以直接访问页面当中的变量,例如 ViolentMonkey。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/424494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX