javascript BTN - next_page_btn-

Posted

tags:

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

// ==UserScript==
// @name         06_next_page_btn-
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  open 3/5 pages.更改2个位置:①插入的位置、插入方式和顺序,②下一页链接的函数
// @author
// @match        https://*.taobao.com/search.htm?spm=*
// @match        https://*.tmail.com/search.htm?spm=*
// @exclude      https://s.taobao.com/*
// @exclude      https://s.tmail.com/*
// @grant        none
// ==/UserScript==

(function() {
    setTimeout(main1, 3 * 1000);
//     setTimeout(do1, 2 * 1000);
// var url_this = window.location.href
// var switch1 = 0
// if (url_this.match(/222.171/)) {
// switch1 = 1
// }
    function main1() {
        var tgt_place1 = document.querySelector('div.shop-hesper-bd')
        // 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);
        // -----
        var insert1=2
        if (insert1===2){
            add_dom(tgt_place1, btn1, 2) // 3为向下插入,2为向上插入。2时,先插入btn1,再btn2;3时,先插入btn1,再btn2。
            add_dom(tgt_place1, btn2, 2)
        } else if (insert1===3){
            add_dom(tgt_place1, btn2, 3) 
            add_dom(tgt_place1, btn1, 3)
        }
    }
    // ----------function
    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 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('li.active button').innerText;
        var l_tmp = [];
        if (!(url1.indexOf('&page=') > 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 + '&page=' + (parseInt(page_current) + i + 1)
                // console.log(url_tmp_2)
                l_tmp.push(url_tmp_2)
            }
        } else {
            //非第一页的情况
            for (var 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))
                var url_tmp = url1.replace(/&page=\d{1,4}/i, '&page=' + (parseInt(page_current) + i + 1))
                // console.log(url_tmp)
                l_tmp.push(url_tmp)
            }
        }
        return l_tmp.reverse()
    }
    // -----
    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 open_url_list(l_url) {
        for (var i = 0; i < l_url.length; i++) {
            window.open(l_url[i])
        }
    }
})();

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

javascript WP-古腾堡代码btn.js

将 as3 btn 代码转换为 Javascript

JavaScript 13 事件详解及应用

javascript 06_taobao_next_page_btn

javascript 06_taobao_next_page_btn

如何在 Javascript 中向 btn.innerHTML 添加函数?