国开自动访问课程的js脚本研究

很久没有研究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);

发表回复