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

iframe页面元素获取

[复制链接]
  • TA的每日心情
    奋斗
    2023-7-6 11:14
  • 签到天数: 253 天

    [LV.8]以坛为家I

    41

    主题

    318

    回帖

    2178

    积分

    荣誉开发者

    累计点滴改进,迈向完美品质。

    积分
    2178

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

    发表于 2022-1-25 12:56:29 | 显示全部楼层 | 阅读模式
    悬赏10油猫币已解决
    本帖最后由 Hangover 于 2022-1-25 13:52 编辑

    问题:  有木有蛋蛋大的大佬给出个简单便捷获取iframe页面元素的方法

    地址: https://www.siguyy.net/play/137220-2-13.html

    这是我获取不同线路视频中logo并去除的方法:1.
    1. let weburl=unsafeWindow.location.href
    2. if (weburl.indexOf('www.ml0513.com')!=-1) {
    3.     GM_addStyle(`
    4.         #lelezdy,
    5.         .leleplayer-logo{
    6.             display:none !important;
    7.         }
    8.         `)
    9. }
    10. if (weburl.indexOf('fufen.mobilegamestudio.net')!=-1) {
    11.     GM_addStyle('.dplayer-logo{display:none !important}')
    12. }
    复制代码

    2.
    1. setTimeout(() => {
    2. let weburl=window.location.href;
    3. if (weburl.indexOf('www.ml0513.com')!=-1) {
    4.     var lelezdy = document.querySelector('#lelezdy');
    5.         var logo1 = document.querySelector('.leleplayer-logo');
    6.         lelezdy.style.display = 'none';
    7.         logo1.style.display = 'none';
    8. }
    9. if (weburl.indexOf('fufen.mobilegamestudio.net')!=-1) {
    10.     var logo2 = document.querySelector('.dplayer-logo');
    11.         logo2.style.display = 'none';
    12. }
    13. }, 3000)
    复制代码


    这是页面中视频Logo:
    QQ图片20220125123131.png


    最佳答案

    查看完整内容

    报错是因为跨域了,非同源的window无法获取document对象,如果只是内联框架,那反而没有跨域问题,所以同源contentDocument,跨域改match,就是最简单的方案了。
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-1-25 12:56:30 | 显示全部楼层
    报错是因为跨域了,非同源的window无法获取document对象,如果只是内联框架,那反而没有跨域问题,所以同源contentDocument,跨域改match,就是最简单的方案了。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-7-6 11:14
  • 签到天数: 253 天

    [LV.8]以坛为家I

    41

    主题

    318

    回帖

    2178

    积分

    荣誉开发者

    累计点滴改进,迈向完美品质。

    积分
    2178

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

    发表于 2022-1-25 14:06:41 | 显示全部楼层

    我想通过这种方式去获取 iframe页面元素,但是报错了

    QQ图片20220125140540.png
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-10 14:44
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    4

    主题

    70

    回帖

    64

    积分

    初级工程师

    积分
    64

    油中3周年挑战者 lv1

    发表于 2022-1-25 14:39:51 | 显示全部楼层
    你的标题和你的需求有很大的出入啊

    这个已经是最简单的方案了

    if (weburl.indexOf('fufen.mobilegamestudio.net')!=-1) {
        GM_addStyle('.dplayer-logo{display:none !important}')
    }

    个人使用的话,建议还是使用ublock来处理会方便一些
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-7-6 11:14
  • 签到天数: 253 天

    [LV.8]以坛为家I

    41

    主题

    318

    回帖

    2178

    积分

    荣誉开发者

    累计点滴改进,迈向完美品质。

    积分
    2178

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

    发表于 2022-1-25 14:50:14 | 显示全部楼层
    本帖最后由 Hangover 于 2022-1-25 14:52 编辑
    ThisAV 发表于 2022-1-25 14:39
    你的标题和你的需求有很大的出入啊

    这个已经是最简单的方案了

    如果iframe只是一个内联框架不包含另一个网页,这方法就不行了,另外我的本意并不是去广告之类的,是想要定位iframe页面中的元素
    回复

    使用道具 举报

  • TA的每日心情

    2024-5-10 14:44
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    4

    主题

    70

    回帖

    64

    积分

    初级工程师

    积分
    64

    油中3周年挑战者 lv1

    发表于 2022-1-25 14:59:18 | 显示全部楼层
    Hangover 发表于 2022-1-25 14:50
    如果iframe只是一个内联框架不包含另一个网页,这方法就不行了,另外我的本意并不是去广告之类的,是想要 ...

    document.querySelectorAll('.leleplayer-logo', 'iframe')
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-7-6 11:14
  • 签到天数: 253 天

    [LV.8]以坛为家I

    41

    主题

    318

    回帖

    2178

    积分

    荣誉开发者

    累计点滴改进,迈向完美品质。

    积分
    2178

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

    发表于 2022-1-25 15:06:08 | 显示全部楼层
    ThisAV 发表于 2022-1-25 14:59
    document.querySelectorAll('.leleplayer-logo', 'iframe')

    gg 上面有地址可以试试
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6764

    积分

    管理员

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

    积分
    6764

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

    发表于 2022-1-25 15:16:22 | 显示全部楼层
    Hangover 发表于 2022-1-25 15:06
    gg 上面有地址可以试试

    document.querySelector('iframe').contentWindow.document.querySelector试试
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-7-6 11:14
  • 签到天数: 253 天

    [LV.8]以坛为家I

    41

    主题

    318

    回帖

    2178

    积分

    荣誉开发者

    累计点滴改进,迈向完美品质。

    积分
    2178

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

    发表于 2022-1-25 15:19:46 | 显示全部楼层
    本帖最后由 Hangover 于 2022-1-25 15:23 编辑
    李恒道 发表于 2022-1-25 15:16
    document.querySelector('iframe').contentWindow.document.querySelector试试

    那页面中有3个iframe标签 而且使用contentWindow.document或者contentDocument直接报错
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6764

    积分

    管理员

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

    积分
    6764

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

    发表于 2022-1-25 17:52:46 | 显示全部楼层
    Hangover 发表于 2022-1-25 15:19
    那页面中有3个iframe标签 而且使用contentWindow.document或者contentDocument直接报错 ...

    那种属于不是同源我记着
    这种情况只能match匹配地址了?
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

    发表回复

    本版积分规则

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