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

异步获取元素的脚本库 ElementGetter

  [复制链接]
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-11 22:10:45 | 显示全部楼层
    wwwwwllllk 发表于 2022-7-11 18:34
    为什么哥哥对原生的api这么熟悉

    这怎么回答。。。一定是因为道哥教的好!
    回复
    订阅

    使用道具 举报

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

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

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

    发表于 2022-7-11 23:46:26 | 显示全部楼层
    擦 忘记限制成油猴脚本类型了
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

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

    [LV.2]偶尔看看I

    9

    主题

    81

    回帖

    88

    积分

    初级工程师

    积分
    88
    发表于 2022-7-14 08:39:25 | 显示全部楼层
    正碰到这个问题(元素加载比较慢),但是还是看不太懂实际用法。。
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-14 11:44:30 | 显示全部楼层

    szzxc 发表于 2022-7-14 08:39

    正碰到这个问题(元素加载比较慢),但是还是看不太懂实际用法。。

    看不懂可能是对Promise不了解,querySelector会写吧?试试这个例子(selector同querySelector的参数):

    const elmGetter = new ElementGetter();
    elmGetter.get(selector).then(elm => {
        console.log(elm);
    });

    如果需要获取多个元素:

    elmGetter.get([
        selector1,
        selector2,
        selector3
    ]).then(([elm1, elm2, elm3]) => {
        console.log(elm1);
        console.log(elm2);
        console.log(elm3);
    });

    async/await的写法没有一定基础可能写不好。each的话文中的例子应该很充分了。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-7-17 16:39:56 | 显示全部楼层
    脚本似流水,唯库恒久远
    哥哥你比玉皇大帝还神

    get(selector, parent, timeout)
    get(selector, timeout, parent)
    不知道把参数调换过来用行不行
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-17 20:45:00 | 显示全部楼层
    脚本体验师001 发表于 2022-7-17 16:39
    脚本似流水,唯库恒久远
    哥哥你比玉皇大帝还神

    目前不行,虽然可以实现,但好像没什么必要,我把注释都删了就是为了让代码短一点。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-9-5 15:56
  • 签到天数: 54 天

    [LV.5]常住居民I

    14

    主题

    74

    回帖

    111

    积分

    中级工程师

    积分
    111
    发表于 2022-7-23 14:17:04 | 显示全部楼层
    请问大佬页面有iframe,然后元素在iframe里,用each每次都会冒3次泡,想请教下大佬这时候parent 应该填什么
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-23 19:32:45 | 显示全部楼层
    琦玉 发表于 2022-7-23 14:17
    请问大佬页面有iframe,然后元素在iframe里,用each每次都会冒3次泡,想请教下大佬这时候parent 应该填什么 ...

    iframe的话让你的脚本直接match那个iframe的地址,效果会更好,parent用document就行。如果iframe非跨域,而你又确实想在顶层操作iframe内的元素,可以先用get或querySelector取得iframe元素,然后parent填iframe.contentDocument。
    https://developer.mozilla.org/en ... ent/contentDocument
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-9-5 15:56
  • 签到天数: 54 天

    [LV.5]常住居民I

    14

    主题

    74

    回帖

    111

    积分

    中级工程师

    积分
    111
    发表于 2022-7-23 21:03:03 | 显示全部楼层
    请问大佬,each不能传选择器数组吗?我试了不行,如果要找数个元素的话,是不是要建几个each呢?
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-7-23 21:57:59 | 显示全部楼层
    琦玉 发表于 2022-7-23 21:03
    请问大佬,each不能传选择器数组吗?我试了不行,如果要找数个元素的话,是不是要建几个each呢? ...

    是的,get的选择器数组是用于管理监听器的,传数组可以将多个监听器合并为一个,而each的监听器由你自己管理(remove移除)。each可以同时建多个来处理不同逻辑,如果是想用同一个回调函数来应对多个选择器,你应该考虑用逗号将选择器合并,参考这里:
    https://bbs.tampermonkey.net.cn/thread-1821-1-1.html
    回复

    使用道具 举报

    发表回复

    本版积分规则

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