今天打算写串代码刷一下网课,遇到了写问题记录一下
代码目的:打算实现以下功能:图文自动浏览,视频结束后跳转
遇到的问题:在某通中一直获取不到元素节点。
解决:回头看了一下源码,调用了iframe标签
这不就好解决了嘛,话不多说上代码
//当页面加载完成执行方法
window.onload = function (){
//全局变量
var i = 582861594;
setInterval(function(){
//获取视频节点
var iframe = document.querySelector("iframe中的id,name,class");
//主要就是如何获取iframe中的元素节点
//我这里解决的是嵌套的iframe 注意
var md = iframe.contentWindow.document.querySelector("iframe中的元素节点的id,name,class").contentWindow.document.querySelector("iframe内部的元素节点的id,name,class");
//判断视频是否存在
if(md==null){
i++;
getTeacherAjax('226700199','59356989',i);
}
if(iframe.contentWindow==null){
i++;
getTeacherAjax('226700199','59356989',i);
}
//获取当前视频的播放时间
var m1=md.currentTime;
//获取视频结束的时间
var m2=md.duration;
//当视频结束时
if(m1==m2){
//调用方法
i++;
getTeacherAjax('226700199','59356989',i);
}
//paused判断视频是否暂停 true暂停false播放
if(md.paused==true){
//开始
md.play();//播放视频
}
},3000)
}
解释一下相关的属性
contentDocument 属性能够以 HTML 对象来返回 iframe 中的文档,可以通过所有标准的 DOM 方法来处理被返回的对象。
contentWindow 这是个只读属性,返回指定的iframe的窗口对象。它虽然不是标准的一部分,但各个主流浏览器都支持。
contentDocument Firefox 支持,IE6,IE7都不支持,IE8开始支持