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

异步获取元素的脚本库 ElementGetter

  [复制链接]
  • TA的每日心情
    开心
    2024-9-29 15:06
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    9

    主题

    81

    回帖

    88

    积分

    初级工程师

    积分
    88
    发表于 2023-11-1 18:13:44 | 显示全部楼层

    const elmGetter = new ElementGetter();    一加载这个语句,网页有些内容就不正常了。有什么办法解决么?
    大部分网页是可以用的,一小部分网页就会出现异常。。2.0解决了这个问题了吗?
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2023-11-1 21:59:37 | 显示全部楼层
    szzxc 发表于 2023-11-1 18:13
    const elmGetter = new ElementGetter();    一加载这个语句,网页有些内容就不正常了。有什么办法解决么 ...

    你试一试呗,有问题的话发一下具体的测试链接,或者复现方式。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-29 15:06
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    9

    主题

    81

    回帖

    88

    积分

    初级工程师

    积分
    88
    发表于 2023-11-2 09:09:48 | 显示全部楼层
    cxxjackie 发表于 2023-11-1 21:59
    你试一试呗,有问题的话发一下具体的测试链接,或者复现方式。

    肉部网络,可以复现,现在换2.0好些,不报错了,但不知道是不是这个包的原因,有些页面打开久了,有文字不显示,一些有数字或日期不显示了
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2023-11-2 22:25:07 | 显示全部楼层
    szzxc 发表于 2023-11-2 09:09
    肉部网络,可以复现,现在换2.0好些,不报错了,但不知道是不是这个包的原因,有些页面打开久了,有文字 ...

    可能不是库的问题,这个没有做劫持,只是纯监听,页面显示问题可能是你对元素做了改动后,原有代码找不到相关元素了,使得后续逻辑出现错误。可以把回调函数都替换成空函数试试,看是否还能复现。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-24 00:00
  • 签到天数: 31 天

    [LV.5]常住居民I

    4

    主题

    39

    回帖

    52

    积分

    初级工程师

    积分
    52

    油中3周年挑战者 lv1

    发表于 2023-11-5 23:33:43 | 显示全部楼层

    哥哥帮忙看一下我这个代码这样写对不对,
    网站(内网。。。囧)是先加载出框架,然后再加载内容,因为加载框架的时候id也会被加载出来,所以增加了另外一个属性交叉,但是出现的问题是10次有一两次能获取到,debug的结果,获取不到的情况都是为空

        async function eg(){
            let pl=await elmGetter.get('textarea[id="outagePullSwitch"][is-cui-form="true"]',document,3000);
            var PullSwitch=pl.parentNode.children[1].outerText.split('\n');
    
            console.log(PullSwitch);
        }
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2023-11-6 22:23:48 | 显示全部楼层
    ray040237 发表于 2023-11-5 23:33
    [md]哥哥帮忙看一下我这个代码这样写对不对,
    网站(内网。。。囧)是先加载出框架,然后再加载内容,因为 ...

    是不是超时时间的问题,去掉超时限制如何?获取不到的是pl还是PullSwitch?
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-24 00:00
  • 签到天数: 31 天

    [LV.5]常住居民I

    4

    主题

    39

    回帖

    52

    积分

    初级工程师

    积分
    52

    油中3周年挑战者 lv1

    发表于 2023-11-8 00:01:47 | 显示全部楼层
    cxxjackie 发表于 2023-11-6 22:23
    是不是超时时间的问题,去掉超时限制如何?获取不到的是pl还是PullSwitch? ...

    谢谢c大,去掉超时也不行,pl是null,下一步就报错,这个写法没错吧
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2023-11-8 21:54:38 | 显示全部楼层
    ray040237 发表于 2023-11-8 00:01
    谢谢c大,去掉超时也不行,pl是null,下一步就报错,这个写法没错吧

    按理来说只有超时才会返回null,没超时应该是一直监听不返回的,也符合你说的有几次能获取到的情况,所以大概率是超时问题,不是的话就很怪了,你代码是怎么改的呢?试试把get的后2个参数都去掉,看会不会出现pl为null的情况(选择器有问题的话应该不会有任何输出才对)。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-24 10:55
  • 签到天数: 61 天

    [LV.6]常住居民II

    14

    主题

    30

    回帖

    113

    积分

    中级工程师

    积分
    113
    发表于 2023-11-24 09:56:58 | 显示全部楼层
    能不能新增获取nodeList的功能,比如gets之类的。。。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2023-11-24 22:00:53 | 显示全部楼层
    player 发表于 2023-11-24 09:56
    能不能新增获取nodeList的功能,比如gets之类的。。。

    get有数组功能呀,传入选择器数组,即返回元素数组。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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