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

油猴脚本 无法读取页面内iframe下的 class信息

[复制链接]
  • TA的每日心情
    擦汗
    2023-4-18 13:55
  • 签到天数: 34 天

    [LV.5]常住居民I

    10

    主题

    36

    回帖

    63

    积分

    初级工程师

    积分
    63
    发表于 2022-9-22 15:53:23 | 显示全部楼层 | 阅读模式
    悬赏10油猫币已解决
    本帖最后由 ZYMKJ 于 2022-9-26 14:55 编辑

    上个问题 可以忽略。  PS.顺便问一句,如何关闭悬赏贴。
    我发现一个bug,我完全不需要跨iframe读取“开始学习”这个class。因为只要打开那个网页,后台就开始计时。
    所以,忽略就完事了。
    但有一个新的问题。就是设置定时关闭新打开的网页B(图片2),然后延迟3秒刷新网页A(图片1)
    现在网页B 最下面有一个标签<script type="text/javascript">
    document.oncontextmenu = function(){
             return false;
    }
    readAssist("2878","10","481","20.0","2400","/study", 240);
    < /script>
    (图3)
    在控制台输入readassist,显示如下代码:
    (function(window,$){
            var timer1;
            var timer2;
            window.readAssist=function(id,source,postion,percent,len,root,timespace)
            {
                var reloginpage=root+"/page/common-tokenerror";
                var assist=new Object;
                assist.hid=0;
                assist.url=root+"/resource/saveTssView";
                assist.source=source;
                assist.postion=postion;
                assist.percent=percent;
                assist.len=len;
                assist.time=parseInt(new Date().getTime()/1000);
                if(timespace&&!isNaN(timespace)){
                    assist.timespace=timespace*1000
                }
                else
                {
                    assist.timespace=60000
                }
                var result=new Object();
                result.cid=id;
                result.source=assist.source;
                result.position=assist.postion;
                result.percent=assist.percent;
                assist.first=function(){
                    if(assist.hid==0){
                        $.ajax({
                            url:assist.url,data:JSON.stringify(result),type:"post",dataType:"json",timeout:20000,contentType:'application/json;charset=utf-8',error:function(message){
                                window.wxc.xcConfirm("网络繁忙,请稍后刷新页面重试!","studyWarning")
                            },
                            success:function(data){
                                if(data){
                                    if(data.status==0){
                                        assist.hid=data.id;
                                        if(assist.timespace!=0){
                                            timer1=window.setInterval(function(){
                                                assist.progressing()
                                            },
                                                                      assist.timespace);
                                            timer2=window.setTimeout(function(){
                                                assist.progressing();
                                                clearInterval(timer1)
                                            },
                                                                     (parseInt(len))*1000)
                                        }
                                    }
                                    else if(data.status==1){
                                        window.wxc.xcConfirm("获得初始进度失败,请刷新页面重试!","studyWarning")
                                    }
                                }
                            }
                        }
                              )
                    }
                };
                assist.progressing=function(){
                    var now=parseInt(new Date().getTime()/1000);
                    if(assist.postion==""){
                        assist.postion=now-assist.time
                    }
                    else{
                        assist.postion=parseInt(assist.postion)+(now-assist.time)
                    }
                    assist.time=now;
                    var result=new Object();
                    result.historyId=assist.hid;
                    result.position=assist.postion;
                    result.len=assist.len;
                    result.cid=id;$.ajax({
                        url:assist.url,data:JSON.stringify(result),type:"post",dataType:"json",timeout:20000,contentType:'application/json;charset=utf-8',error:function(message){
                            window.wxc.xcConfirm("网络繁忙,请稍后刷新页面重试!","error")
                        },
                        success:function(data){
                            if(data){
                                if(data.status==0){
                                }
                                else if(data.status==1){
                                    window.wxc.xcConfirm("进度记录失败,请刷新页面重试!","studyWarning")
                                }
                                else if(data.status==2){
                                    window.clearTimeout(timer1);
                                    window.clearTimeout(timer2);
                                    window.wxc.xcConfirm("不能同时学习多门课程,点击确认关闭窗口。","readCourse",{
                                        onOk:function(v){window.close()
                                                        }
                                    }
                                                        )
                                }
                            }
                        }
                    }
                                        )
                };
                assist.history=function(){
                    if(assist.hid==0){
                        assist.first()
                    }
                    else{
                        assist.progressing()
                    }
                };
                assist.history();
                return assist
            }
        }
        )
        (window,$);

    我需要在外置脚本中 调用len(变量)这个数值设定为自动关闭网页B的时间,Len+5秒为刷新网页A的时间。现在不会调取当前网页的len,并把这个len值设为自动关闭网页的时间。



    图片1.png
    图片2.png
    图片3.png

    最佳答案

    查看完整内容

    https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=2267&highlight=%5B%E8%84%9A%E6%9C%AC%E5%AE%9E%E6%88%98%E7%AF%87%5D 跨域实战 善用论坛搜索 各种教程非常完善的
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    633

    主题

    5173

    回帖

    6052

    积分

    管理员

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

    积分
    6052

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

    发表于 2022-9-22 15:53:24 | 显示全部楼层
    https://bbs.tampermonkey.net.cn/ ... 6%88%98%E7%AF%87%5D
    跨域实战
    善用论坛搜索
    各种教程非常完善的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    慵懒
    4 分钟前
  • 签到天数: 625 天

    [LV.9]以坛为家II

    30

    主题

    532

    回帖

    1400

    积分

    荣誉开发者

    积分
    1400

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

    发表于 2022-9-22 16:02:01 | 显示全部楼层
    同域iframe
    1. document.querySelectorAll("iframe")[1].contentWindow.document.querySelector(这里填CLASS选择器)
    复制代码

    跨域iframe建议看这篇
    [油猴开发指南]关于脚本如何处理iframe的碎碎念
    https://bbs.tampermonkey.net.cn/thread-2895-1-1.html
    (出处: 油猴中文网)
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-4-18 13:55
  • 签到天数: 34 天

    [LV.5]常住居民I

    10

    主题

    36

    回帖

    63

    积分

    初级工程师

    积分
    63
    发表于 2022-9-22 18:39:42 | 显示全部楼层
    李恒道 发表于 2022-9-22 17:21
    https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=2267&highlight=%5B%E8%84%9A%E6%9C%AC%E5 ...

    就是看到你的B站视频,然后找到论坛帖子,然后开始动手写自己刷课脚本
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    633

    主题

    5173

    回帖

    6052

    积分

    管理员

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

    积分
    6052

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

    发表于 2022-9-22 18:58:37 | 显示全部楼层
    ZYMKJ 发表于 2022-9-22 18:39
    就是看到你的B站视频,然后找到论坛帖子,然后开始动手写自己刷课脚本 ...

    卡在哪里直接在论坛搜就可以
    b站连起步都没讲完...
    论坛密度差不多是b站教程的五六倍

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

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

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-4-18 13:55
  • 签到天数: 34 天

    [LV.5]常住居民I

    10

    主题

    36

    回帖

    63

    积分

    初级工程师

    积分
    63
    发表于 2022-9-22 19:23:02 | 显示全部楼层
    本帖最后由 ZYMKJ 于 2022-9-22 19:24 编辑
    李恒道 发表于 2022-9-22 18:58
    卡在哪里直接在论坛搜就可以
    b站连起步都没讲完...
    论坛密度差不多是b站教程的五六倍

    现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
    A页面: https://111.aaa.cn/bbb/ccc,其中播放器是iframe src=https://123.aaa.cn/def/mkj
    然后那个“开始学习”也不是按钮,而是一个class,但是可以点击,click 命令可以实现点击。  现在就是在A页面 读取不到 “开始学习”的class,这不正在研究吗。


    从你的【脚本实战篇】 第一个开始看起
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    633

    主题

    5173

    回帖

    6052

    积分

    管理员

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

    积分
    6052

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

    发表于 2022-9-22 20:59:45 | 显示全部楼层
    ZYMKJ 发表于 2022-9-22 19:23
    现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
    A页面: https://1 ...

    哥哥加油
    steven推荐的也可以看看
    他的是针对跨域的

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

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

    使用道具 举报

  • TA的每日心情
    无聊
    2022-8-21 01:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    7

    主题

    58

    回帖

    63

    积分

    初级工程师

    积分
    63
    发表于 2022-9-24 20:42:50 | 显示全部楼层
    ZYMKJ 发表于 2022-9-22 19:23
    现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
    A页面: https://1 ...

    都是aaa.cn,主域名相同,应该可以获取。
    参考链接:https://bbs.tampermonkey.net.cn/thread-3269-1-1.html
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-4-18 13:55
  • 签到天数: 34 天

    [LV.5]常住居民I

    10

    主题

    36

    回帖

    63

    积分

    初级工程师

    积分
    63
    发表于 2022-9-26 14:34:51 | 显示全部楼层
    本帖最后由 ZYMKJ 于 2022-9-26 14:49 编辑

    此回复删除了。在1楼编辑了。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-4-18 13:55
  • 签到天数: 34 天

    [LV.5]常住居民I

    10

    主题

    36

    回帖

    63

    积分

    初级工程师

    积分
    63
    发表于 2022-9-26 14:40:42 | 显示全部楼层
    另外这个悬赏 怎么结束?
    回复

    使用道具 举报

    发表回复

    本版积分规则

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