V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
amiwrong123
V2EX  ›  问与答

如何让一个油猴脚本在页面完全加载后 再执行?

  •  
  •   amiwrong123 · 2020-02-05 15:54:57 +08:00 · 10664 次点击
    这是一个创建于 1740 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有一个护眼脚本能把大部分页面都改掉背景颜色。

    在 gerrit 页面上也能改掉部分背景颜色,但是在代码部分却还是是白色。

    1580888623(1)

    如上,改掉部分背景颜色

    1580888935(1)

    如上,代码部分却还是是白色

    我如果在页面加载完毕后,在像如下图所示再点一下,就可以使得整个页面都改掉背景颜色。 1580889195(1)

    如上,我再点一下浅橄榄,才可以使得整个页面都改颜色

    如何能够使得页面加载完毕后,再改掉所有所有背景颜色啊?

    试了 setTimeout 和 https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event 里面的,好像不好使啊?

    7 条回复    2020-06-03 18:38:54 +08:00
    lxk11153
        1
    lxk11153  
       2020-02-05 16:06:41 +08:00   ❤️ 1
    https://www.tampermonkey.net/documentation.php#_run_at

    不过: dom 元素可以在页面加载完成后由 js 触发更改的呀
    amiwrong123
        2
    amiwrong123  
    OP
       2020-02-05 16:13:38 +08:00
    @lxk11153
    这个我也试了,脚本自带这个设置,但我设置各个选项,都不能使得整个页面都改掉颜色。

    <img src="https://s2.ax1x.com/2020/02/05/1s9mjg.png" alt="1580890382(1)" border="0">
    Seanfuck
        3
    Seanfuck  
       2020-02-05 16:14:23 +08:00 via iPhone
    Jquery 不是有个.ready()吗,这个不行?
    keepeye
        4
    keepeye  
       2020-02-05 16:16:49 +08:00
    判断页面加载完成不靠谱,很多 js 都是异步执行修改 css 的
    试试给 body 新增 class
    <body class="protect_eye">

    <style>
    body.protect_eye{background:#abcdef !important;}
    </style>
    suotm
        5
    suotm  
       2020-02-05 16:24:28 +08:00
    之前处理过类似的问题,用了一个别人写的函数,监控页面的某一个元素,如果改元素存在了就执行后续操作。

    Gist:BrockA/2625891

    (注册未满 30 天发不了连接,sorry )
    amiwrong123
        6
    amiwrong123  
    OP
       2020-02-05 19:08:50 +08:00
    @keepeye
    有点思路, 写了一句 js 代码可以改变颜色了。

    但只有在页面完全加载后,在 F12 的 console 里运行这句话,才会成功。

    如果把这句 js 代码写在油猴脚本里,就会报错,说这个元素是 undefine 的未定义的。
    看来这个元素是动态加载出来的吧。之后按照网上说的 off on 解绑事件,绑定事件,但还是不好使。。
    pys078
        7
    pys078  
       2020-06-03 18:38:54 +08:00
    其实很简单啊,在前面的数据块里面加上这个
    // @run-at document-end
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2943 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:58 · PVG 20:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.