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

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

[复制链接]
  • TA的每日心情
    开心
    2022-11-5 13:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    11

    主题

    31

    回帖

    59

    积分

    荣誉开发者

    积分
    59

    荣誉开发者

    发表于 2022-2-8 15:39:43 | 显示全部楼层 | 阅读模式
    悬赏1油猫币未解决

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

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

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

    图片

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5992

    回帖

    6780

    积分

    管理员

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

    积分
    6780

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 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的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5992

    回帖

    6780

    积分

    管理员

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

    积分
    6780

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 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丢个函数应该就好了

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-5 13:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    11

    主题

    31

    回帖

    59

    积分

    荣誉开发者

    积分
    59

    荣誉开发者

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5992

    回帖

    6780

    积分

    管理员

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

    积分
    6780

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 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('路由发生改变')})
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-5 13:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    11

    主题

    31

    回帖

    59

    积分

    荣誉开发者

    积分
    59

    荣誉开发者

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5992

    回帖

    6780

    积分

    管理员

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

    积分
    6780

    荣誉开发者喜迎中秋油中2周年生态建设者

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

    不用
    document.querySelector('#app').__vue__.$router.afterHooks.push(()=>{console.log('路由发生改变')})
    主要是看对应的源码,找注入点一点一点跳进去
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-5 13:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    11

    主题

    31

    回帖

    59

    积分

    荣誉开发者

    积分
    59

    荣誉开发者

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5992

    回帖

    6780

    积分

    管理员

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

    积分
    6780

    荣誉开发者喜迎中秋油中2周年生态建设者

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

    要看脚本执行时机以及页面初始化时机的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5992

    回帖

    6780

    积分

    管理员

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

    积分
    6780

    荣誉开发者喜迎中秋油中2周年生态建设者

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

    可以setinterval循环一下
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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