怎么获取动态弹出对话框的模拟单击?

我在用js实现自动化刷课脚本的时候,要处理一个“继续学习”弹出对话框,才能播放。
使用document.queryselctor('.continue')获取不到,好像也没有click事件;

<div id="mask"></div>
        <!--是否继续学习的弹出框-->
        <div class="continue">
            <div style="color:#ff5400"></div>
            <div class="user_choise"></div>
        </div>
        <!--不支持video的提示-->
        <div class="no_support">
            <div class="no_support_title">提示</div>
            <div class="no_support_content">您的浏览器版本过低不支持H5视频播放,请升级浏览器版本,或使用谷歌浏览器</div>
            <div class="confirm_btn">确认</div>
        </div>
//点击继续学习
$(".continue .user_choise").click(function(){
    $("#mask,.continue").hide();
    //$(".continue").remove();

    //判断浏览器是否支持video播放
    if(!document.createElement('video').canPlayType){
        $(".no_support,#mask").show();
    }else{
        player.continuePlay();
    }
});
var continue_msg = {"begin":{"msg":"欢迎您学习本课程","btn":"开始学习"},
                                            "continue":{
                                                "msg":function(pos){
                                                    var _tmp = pos.split(".")
                                                return "您上次学习到 "+$.convertDigital(_tmp[0]);
                                                },"btn":"继续学习"}}

我是等对话框加载完成之后,在控制台调试的
不管是:document.querySelector('.continue .user_choise')
还是:$('.continue .user_choise')
都返回null
哪位能帮忙在线看看吧
我对js,前端以前没接触

阅读 514
3 个回答
✓ 已被采纳

是否有点击事件这个,你在F12里找到这个dom,找他的事件监听器,看看里面有没有click

dom找不到的话,如果对话框加载完毕也不行,可能是这个页面是放在iframe里,document指向有问题

用定时器:

setTimeout(function() {
  const continueBtn = document.querySelector('.continue .user_choise');
  if (continueBtn) {
    continueBtn.click();
  }
}, 2000);  // 等待2秒

这个是在两层frame里面,控制台element显示的,

<iframe id="course_frm" frameborder=0 scrolling="no" src="...">
 #document
<!doctype html>
<html>
<head>... </head>
<body>
<iframe id="course_frame" allowfullscreen="true" webkitallowfullscreen="true" frameborder="0" scrolling="auto" src="course/p71906091/index.htm" style="height: 908px; width: 1920px;"></iframe>
</body>
</html>
</iframe>

上面这个frame是嵌套在另一个frame里面的,我奇怪的是这个有时候能获取到,有时候又是空呢?
控制台调试


这个为什么获取不到iframe的contentDocument呢

course/p71906091/index.htm代码:

 <div id="mask"></div>
        <!--是否继续学习的弹出框-->
        <div class="continue">
            <div style="color:#ff5400"></div>
            <div class="user_choise"></div>
        </div>
        <!--不支持video的提示-->
        <div class="no_support">
            <div class="no_support_title">提示</div>
            <div class="no_support_content">您的浏览器版本过低不支持H5视频播放,请升级浏览器版本,或使用谷歌浏览器</div>
            <div class="confirm_btn">确认</div>
        </div>

我应该怎么获取并操作单击呢,谢谢啦

推荐问题