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 06_taobao_next_page_btn