很久没有研究jquery了,这次通过在网页里嵌入一个iframe,然后通过脚本自动读取未访问的课程链接,通过iframe访问链接,达到点击的效果。
具体是进入课程的首页,按f12进入调试模式,进入控制台,粘贴写好的代码,即可。
说明:以下代码仅仅是用于javascript的技术研究,请勿用于完成国开课程学习任务。
//创建一个iframe
var iframe = $("#myframe");
//把iframe添加到body里面
if(iframe.length==0) {
var iframe = $("<iframe>").appendTo($('body'));
iframe.attr("id","myframe").attr("name","myframe").css("width","1000px").css("height","600px");
}
// 待访问的链接集合(数组)
var links = new Array();
// 遍历课程中的链接
$("li.activity").each(function(index, el) {
var _this = $(this);
var aalink = _this.find("a.aalink"); //链接a元素
var href_str = aalink.attr("href"); //获取链接地址
var instancename = aalink.find('.instancename'); // 获取章节名称(含隐藏名称)的元素
var accesshide = instancename.find(".accesshide"); // 获取章节隐藏名称的元素(隐藏名称即链接类型)
var accesshide_str = accesshide.text(); //链接类型名称
var instancename_str = instancename.text().replace(accesshide_str,"");//链接名称
// 查找该节点是否属于未完成的类型
var confirm_n_img = _this.find("img[src='http://chengdu.ouchn.cn/theme/blueonionres/pix/confirm_n.png']");
// 如果是未完成,且链接类型名称含有“网页”2个字,则这个链接就是待访问的,加入待访问的集合(数组)中
if(confirm_n_img.length>0 && accesshide_str && accesshide_str.indexOf("网页")>-1) {
console.log(instancename_str+","+accesshide_str);
if(href_str&&href_str.length>10) {
links.push(href_str);
}
}
});
console.log("\n\n总共还有"+links.length+"个链接未点击");
var linksSize = links.length;
var i = 0;
// 通过iframe访问链接地址
function load() {
var url = links[i++];
iframe.attr("src",url);
console.log("访问:"+url);
if(i>=linksSize) {
clearInterval(myInterval);
}
}
// 定时任务,每分钟访问1次
var myInterval = setInterval(load,60000);