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

脚本开发经验 - React页面获取Props属性

[复制链接]
  • TA的每日心情
    开心
    2024-3-6 22:32
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    9

    主题

    31

    回帖

    61

    积分

    初级工程师

    积分
    61

    油中2周年油中3周年挑战者 lv2

    发表于 2023-4-1 20:22:32 | 显示全部楼层 | 阅读模式

    本帖最后由 啊麟 于 2023-4-1 20:27 编辑

    React页面获取Props属性

    前言


    vue页面中,可以直接通过dom.__vue__获取Props跟methods。

    但是在react页面中,想要拿到Props,得用dom.__reactProps

    但是后面有个随机字符串,例如__reactProps$8hjj1t7quvw,这种情况就得遍历下了


    示例代码


    function getReactPropsName(domElement) {
      for (var key in domElement) {
        // 判断属性名是否以 "__reactProps" 开头,如果是则返回该属性名
        if (key.startsWith("__reactProps")) {
          return key;
        }
      }
      // 如果未找到对应的属性名,则返回 null
      return null;
    }
    
    var myElement = document.querySelector("#douyin-right-container > div._bEYe5zo > div");
    var reactPropsName = getReactPropsName(myElement);
    console.log(reactPropsName); // 输出 __reactProps$8hjj1t7quvw 等类似的属性名
    console.log(myElement[reactPropsName]);  // 输出dom Props属性
    

    此文章由油猴中文网战略精神小伙合作伙伴提供~

    油猴中文网精神合作伙伴ikun
  • TA的每日心情
    开心
    2024-3-6 22:32
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    9

    主题

    31

    回帖

    61

    积分

    初级工程师

    积分
    61

    油中2周年油中3周年挑战者 lv2

    发表于 2023-4-1 20:24:48 | 显示全部楼层

    中分头背带裤,我是ikun你记住!

    油猴中文网精神合作伙伴ikun
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    290

    主题

    3857

    回帖

    3785

    积分

    管理员

    积分
    3785

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2023-4-1 21:04:26 | 显示全部楼层
    小黑子入侵油中了
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-6 22:32
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    9

    主题

    31

    回帖

    61

    积分

    初级工程师

    积分
    61

    油中2周年油中3周年挑战者 lv2

    发表于 2023-4-1 21:38:37 | 显示全部楼层
    王一之 发表于 2023-4-1 21:04
    小黑子入侵油中了

    只因
    油猴中文网精神合作伙伴ikun
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 23:59
  • 签到天数: 621 天

    [LV.9]以坛为家II

    30

    主题

    530

    回帖

    1397

    积分

    荣誉开发者

    积分
    1397

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2023-4-1 23:53:32 | 显示全部楼层
    其实可以直接这样
    1. Object.values(document.querySelector(***))[1]
    复制代码

    绝大部分情况下react页面元素可枚举属性里,
    索引0是__reactFiber$XXX;
    索引1是__reactProps$XXX;
    直接获取可枚举值就行了,如果遇到特殊页面再微调
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-6 22:32
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    9

    主题

    31

    回帖

    61

    积分

    初级工程师

    积分
    61

    油中2周年油中3周年挑战者 lv2

    发表于 2023-4-2 01:04:41 | 显示全部楼层
    steven026 发表于 2023-4-1 23:53
    其实可以直接这样

    绝大部分情况下react页面元素可枚举属性里,

    大哥牛逼,学到了
    油猴中文网精神合作伙伴ikun
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    632

    主题

    5161

    回帖

    6041

    积分

    管理员

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

    积分
    6041

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

    发表于 2023-4-2 01:42:49 | 显示全部楼层
    steven026 发表于 2023-4-1 23:53
    其实可以直接这样

    绝大部分情况下react页面元素可枚举属性里,

    牛逼
    第一次知道
    话说我QQ好友也有一个叫steven,头像跟你差不多
    好巧哦
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 701 天

    [LV.9]以坛为家II

    27

    主题

    733

    回帖

    7211

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    积分
    7211

    荣誉开发者油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-4-2 10:30:38 | 显示全部楼层
    ikun yyds!!!!!!
    回复

    使用道具 举报

    发表回复

    本版积分规则

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