京东优惠券抢购

京东优惠券刷新测试

目前为 2017-06-18 提交的版本。查看 最新版本

// ==UserScript==
// @name        京东优惠券抢购
// @author      rjw
// @description 京东优惠券刷新测试
// @namespace   com.uestc.rjw
// @icon        https://raw.githubusercontent.com/babyrjw/StaticFiles/master/logo_jd.jpg
// @license     Apache Licence V2
// @encoding    utf-8
// @date        18/06/2017
// @modified    18/06/2017
// @noframes
// @match       *://sale.jd.com/act/*
// @require     http://code.jquery.com/jquery-2.1.1.min.js
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_setClipboard
// @grant GM_xmlhttpRequest
// @grant unsafeWindow
// @run-at      document-end
// @connect     jd.com
// @version     1.0.4
// ==/UserScript==


/*
 * === 说明 ===
 *@作者:rjw
 *@Email:[email protected]
 * */
/*
 *优惠券一般是<a>标签内部嵌套一个<img>图片,<a>标签的href是领取优惠券的链接
 *
 * */
(function add_start(){
    console.log('handle all coupon link :'+unsafeWindow.location);
    var all_a = $("a[href*='coupon']");
    all_a.each(function(index, e){
        //清理<a>标签的 href, target属性
        var item = $(this);
        var url = item.attr('href');
        item.attr('data-url',url);
        item.removeAttr('href');
        item.removeAttr('target');
        var children = $(this).children();
        //计算加入按钮后<a>标签的高度
        var height = 0;
        for(var i = 0 ; i < children.length; ++i){
            console.log(children[i]+" "+i+" "+children[i].offsetHeight);
            height += children[i].offsetHeight;
        }
        height += 58;
        //如果<a>标签的高度或者它的父节点的高度不够,设置高度以保证按钮显示
        var element = $(this);
        while(element.height() < height){
            if("static" == element.css('display')){
                element.css('display','inline-block');
            }
            element.height(height);
            element = $(element.parent());
        }
        //添加按钮
        var item_id = "retrive_coupon_msg"+index;
        var item_btn = "retrive_coupon_txt"+index;
        $(this).append("<button style='display:block;width:100%;height:58px;font-size:1.5em;z-index:999'><span id='"+item_btn+"'>获取优惠券</span><br/><span id='"+item_id+"' style='font-size:0.5em'></span></button>");
        var click_count = 0;
        var is_continue = false;
        //点击按钮后循环请求领取优惠券的链接
        $(this).on('click', function(){
            click_count = 0;
            is_continue = !is_continue;
            function get_coupon(){
                click_count += 1;
                GM_xmlhttpRequest({
                    url:url,
                    method:'GET',
                    onload:function(response){
                        var msg = '';
                        if(response.finalUrl.indexOf('passport.jd.com') >= 0){
                            msg = click_count+':已停止领取,请登录(不可用)后重试';
                            is_continue = false;
                        }else{
                            var result = response.responseText;
                            var doc = $(result);
                            var contents = doc.find('.content');
                            if(contents.length > 0){
                                msg = click_count+":"+contents[0].innerText;
                            }else{
                                msg = click_count+':领取优惠券出错,请查看console日志';
                                console.log(response);
                            }
                        }
                        $('#'+item_id).text(msg);
                        if(is_continue){
                            setTimeout(function(){
                                get_coupon();
                            },0);
                        }else{
                            $('#'+item_btn).text('开始获取优惠券');
                        }
                    }
                });
             }
            if(is_continue){
                if(url.indexOf("//") === 0){
                    url = unsafeWindow.location.protocol + url;
                }
                console.log('开始获取优惠券:'+ url);
                $('#'+item_btn).text('停止获取优惠券');
                get_coupon();
            }else{
                console.log('停止获取优惠券:'+ url);
                $('#'+item_btn).text('开始获取优惠券');
            }
        });
    });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址