V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
keepsome
V2EX  ›  JavaScript

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

  •  
  •   keepsome · 2018-01-20 14:35:11 +08:00 · 4408 次点击
    这是一个创建于 2259 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    监控地址: http://console.re/bf8e-4fa7-a2dc
    tampermonkey 监控的页面是: https://www.baidu.com
    8qwe24657913
        4
    8qwe24657913  
       2018-01-20 18:11:17 +08:00   ❤️ 1
    @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
        5
    keepsome  
    OP
       2018-01-20 21:18:00 +08:00
    @vizards 感谢,grant none 下通过,大部分脚本可以追踪了

    @8qwe24657913 感谢补全,这个方法看起来很强大,不能发布到 greasyfork 那也没办法,放 github 上就行
    Arnie97
        6
    Arnie97  
       2018-01-21 14:15:20 +08:00 via Android
    @caomu 虽然 GreaseMonkey 是沙盒,但一些其他的 User Script 管理器可以直接访问页面当中的变量,例如 ViolentMonkey。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5310 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 05:59 · PVG 13:59 · LAX 22:59 · JFK 01:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.