javascript 06_taobao_next_page_btn

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 06_taobao_next_page_btn相关的知识,希望对你有一定的参考价值。

// ==UserScript==
// @name         06_taobao_next_page_btn
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  open 3/5 pages
// @author       
// @match        https://s.taobao.com/*
// @match        https://s.tmail.com/*
// @grant        none
// ==/UserScript==

(function() {
    setTimeout(do1, 5 * 1000);
//     setTimeout(do1, 2 * 1000);
// var url_this = window.location.href
// var switch1 = 0
// if (url_this.match(/222.171/)) {
// switch1 = 1
// }
function do1() {
    //     var frame_1 = document.querySelector('p.ui-page-s a.ui-page-s-next')
    //     if (frame_1) {
    var tgt_place1 = document.querySelector('div#mainsrp-d11filterbar')
    // if  (! tgt_place1){
    // tgt_place1 = frame_1[i].querySelectorAll('td.left.nowrap div strong.name')[0]
    // }
    var btn1 = creat_btn('open3', 'open 3 pages', function() {
        open_url_list(list_next_url(3))
    })
    var btn2 = creat_btn('open5', 'open 5 pages', function() {
        open_url_list(list_next_url(5))
    })

    var cssText1 = 'font-size: 24px;    text-align: center;    line-height: 3;    letter-spacing: 30px;'
    //         var dom_tmp = add_href_2div(url_text1, url1, cssText1);
    add_dom(tgt_place1, btn1, 2)
    add_dom(tgt_place1, btn2, 2)
    //     }
}

function add_dom(tgt_dom, dom1, arg1=0) {
    // arg1 = 0:在tgt的child的第一个位置插入;
    // 1:在tgt的child的最后位置插入;
    // 2:在tgt的上面添加;
    // 3,在tgt的下面添加;
    // 如果以上参数都不能满足要求,那么请定制本函数。
    if (arg1 == 0) {
        tgt_dom.insertBefore(dom1, tgt_dom.childNodes[0]);
    } else if (arg1 == 1) {
        tgt_dom.appendChild(dom1)
    } else if (arg1 == 2) {
        insert_u_a_d(dom1, tgt_dom)
    } else if (arg1 == 3) {
        insert_u_a_d(dom1, tgt_dom, 2)
    }
}

function insert_u_a_d(newElement, targetElement, arg1=1) {
    // arg1:1,up/before;2,down/after
    var parent = targetElement.parentNode;
    if (arg1 == 1) {
        parent.insertBefore(newElement, targetElement);
    } else {
        if (parent.lastChild == targetElement) {
            parent.appendChild(newElement);
        } else {
            parent.insertBefore(newElement, targetElement.nextSibling);
        }
    }
}

function creat_btn(id1, str_btn, func1) {
    var span_id = id1 + 'span'
    var input_id = id1
    //
    var body = document.getElementsByTagName('body')[0];
    var span1 = document.getElementById(span_id)
    var btn_1, div1
    //
    //     if (span1) {
    //         document.body.removeChild(span1) // 报错
    //     }
    //
    btn_1 = document.createElement("input");
    btn_1.setAttribute('id', input_id);
    btn_1.setAttribute('type', 'button');
    // btn_1.setAttribute('onclick', 'selText()');
    btn_1.setAttribute('value', str_btn);
    btn_1.style.cssText = '    -webkit-appearance: button;    box-sizing: border-box;  width:140px;  height: 28px;margin: 0 10px;'
    //
    //     div1 = document.createElement("div");
    //
    span1 = document.createElement("span");
    span1.setAttribute('id', span_id);
    //         if
    span1.style.cssText = 'display:inline-block;'
    //margin:0px 16px 0px 16px';
    //btn_1的width是28px
    // span1.style.margin='0px 12px 0px 2px'
    //
    // div1.insertBefore(btn_2,div1.childNodes[0])
    var l_tmp = [btn_1];
    for (var i = 0; i < l_tmp.length; i++) {
        span1.insertBefore(l_tmp[i], span1.childNodes[0]);
    }
    //此处不能用innerText,否则\n会被转换为<br>
    //         document.querySelector('input#'+input_id).addEventListener('click', function() {selText()})
    btn_1.addEventListener('click', func1)
    return span1
}

function list_next_url(num1) {
    var url1 = window.location.href;
    var item_every_page = '44';
    //url1.match(/&s=(\d{1,2})/i)[1];
    var page_current = document.querySelector('ul.items li.item span.current').innerText;
    var l_tmp = [];
    if (!(url1.indexOf('&s=') > 0)) {
        //第一页的情况
        //     if (!(url1.indexOf('&data-key=s') > 0)) { //第一页的情况
        //        var url_tmp = url1 + '&data-key=s'
        var url_tmp = url1
        for (var i = 0; i < num1; i++) {
            // 			url_tmp_2 = url_tmp + '&data-value=' + (parseInt(page_current) + i) * parseInt(item_every_page)
            var url_tmp_2 = url_tmp + '&s=' + (parseInt(page_current) + i) * parseInt(item_every_page)
            console.log(url_tmp_2)
            l_tmp.push(url_tmp_2)
        }
    } else {
        //非第一页的情况
        for (i = 0; i < num1; i++) {
            // 			url_tmp = url1.replace(/&data-value=\d{2,4}/i, '&data-value=' + (parseInt(page_current) + i) * parseInt(item_every_page))
            url_tmp = url1.replace(/&s=\d{2,4}/i, '&s=' + (parseInt(page_current) + i) * parseInt(item_every_page))
            console.log(url_tmp)
            l_tmp.push(url_tmp)
        }
    }
    return l_tmp.reverse()
}
function open_url_list(l_url) {
    for (var i = 0; i < l_url.length; i++) {
        window.open(l_url[i])
    }
}
})();

以上是关于javascript 06_taobao_next_page_btn的主要内容,如果未能解决你的问题,请参考以下文章

03JavaScript程序设计修炼之道 2019-06-06_20-10-17_2019-06-06_21-12-50 对象定义方式:{}构造;字符串及常用方法;

03JavaScript程序设计修炼之道 2019-06-25_20-34-21-2019-06-25_20-44-06 节点元素的操作:增删改

javascript 06_taobao_next_page_btn

javascript 06_taobao_next_page_btn

03JavaScript程序设计修炼之道 2019-06-04_fe-js-044es6解构赋值之数组解构_2019-06-06_20-10-17 解构赋值数组排序法

03JavaScript程序设计修炼之道-2019-06-20_20-07-53