上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

如何做到当浏览器地址栏中的url变化后重新加载脚本?

[复制链接]
  • TA的每日心情
    开心
    2022-3-13 14:58
  • 签到天数: 2 天

    [LV.1]初来乍到

    11

    主题

    45

    帖子

    55

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    55
    发表于 2022-2-8 15:39:43 | 显示全部楼层 | 阅读模式
    1油猫币

    本帖最后由 木羊羽 于 2022-2-8 15:45 编辑

    如何做到当浏览器地址栏中的url变化后重新加载脚本?

    我是在哔哩哔哩视频播放界面点击视频后油猴脚本并没有重新加载,请问哥哥们代码应该怎么写呢?

    图片

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    332

    主题

    2896

    帖子

    2908

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2908

    猫咪币纪念章

    发表于 2022-2-8 16:29:34 | 显示全部楼层
    bilibili使用的是vue框架
    vue-router是vue框架的路由,主要有hash,histroy,abstract三种模式
    b站我记着是用的history模式
    对pushState api可以尝试劫持一下看看‘
    mdn来自https://developer.mozilla.org/en ... I/History/pushState
    或者拿到vue对象之后,在vue-router修改出来一个跳转路由,每一次进行路由跳转的时候回调你函数也是OK的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    332

    主题

    2896

    帖子

    2908

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2908

    猫咪币纪念章

    发表于 2022-2-8 16:43:58 | 显示全部楼层
    router.afterEach((to, from) => {
      sendToAnalytics(to.fullPath)
    })

    查看vuerouter源码

    https://github.com/vuejs/vue-router/blob/dev/dist/vue-router.js

    VueRouter.prototype.afterEach = function afterEach (fn) {
        return registerHook(this.afterHooks, fn)
      };

    图片.png

    往afterhooks丢个函数应该就好了

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-13 14:58
  • 签到天数: 2 天

    [LV.1]初来乍到

    11

    主题

    45

    帖子

    55

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    55
    发表于 2022-2-8 17:06:50 | 显示全部楼层
    李恒道 发表于 2022-2-8 16:43
    [md]```javascript
    router.afterEach((to, from) => {
      sendToAnalytics(to.fullPath)

    哥哥 我努力一下我看能不能搞懂
    回复

    使用道具 举报

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    332

    主题

    2896

    帖子

    2908

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2908

    猫咪币纪念章

    发表于 2022-2-8 17:17:49 | 显示全部楼层
    木羊羽 发表于 2022-2-8 17:06
    哥哥 我努力一下我看能不能搞懂

    https://bbs.tampermonkey.net.cn/ ... thread&tid=1727
    document.querySelector('#app').__vue__.$router.afterHooks.push(()=>{console.log('路由发生改变')})
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-13 14:58
  • 签到天数: 2 天

    [LV.1]初来乍到

    11

    主题

    45

    帖子

    55

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    55
    发表于 2022-2-8 17:24:07 | 显示全部楼层
    李恒道 发表于 2022-2-8 16:43
    [md]```javascript
    router.afterEach((to, from) => {
      sendToAnalytics(to.fullPath)

    需要首先在脚本里面引入这个vue-router.js吗?
    回复

    使用道具 举报

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    332

    主题

    2896

    帖子

    2908

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2908

    猫咪币纪念章

    发表于 2022-2-8 17:28:02 | 显示全部楼层
    木羊羽 发表于 2022-2-8 17:24
    需要首先在脚本里面引入这个vue-router.js吗?

    不用
    document.querySelector('#app').__vue__.$router.afterHooks.push(()=>{console.log('路由发生改变')})
    主要是看对应的源码,找注入点一点一点跳进去
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-13 14:58
  • 签到天数: 2 天

    [LV.1]初来乍到

    11

    主题

    45

    帖子

    55

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    55
    发表于 2022-2-8 17:51:29 | 显示全部楼层
    李恒道 发表于 2022-2-8 17:28
    不用
    document.querySelector('#app').__vue__.$router.afterHooks.push(()=>{console.log('路由发生改变 ...

    在脚本里面使用出错,在命令行使用成功
    回复

    使用道具 举报

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    332

    主题

    2896

    帖子

    2908

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2908

    猫咪币纪念章

    发表于 2022-2-8 18:06:16 | 显示全部楼层
    木羊羽 发表于 2022-2-8 17:51
    在脚本里面使用出错,在命令行使用成功

    要看脚本执行时机以及页面初始化时机的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    2022-6-4 20:51
  • 签到天数: 32 天

    [LV.5]常住居民I

    332

    主题

    2896

    帖子

    2908

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2908

    猫咪币纪念章

    发表于 2022-2-8 18:06:38 | 显示全部楼层
    木羊羽 发表于 2022-2-8 17:51
    在脚本里面使用出错,在命令行使用成功

    可以setinterval循环一下
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表