您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Сортировка списка клана
当前为
// ==UserScript== // @name LNK_clanSort // @author NemoMan // @namespace LNK // @description Сортировка списка клана // @include *heroeswm.ru/clan_info.php* // @version 1.3 // @grant none // ==/UserScript== (function() { 'use strict'; var table, sortedRows, elems, paramTbl; var i, n; var iventCount = false; function compareIvent(rowA, rowB) { var a = rowA.cells[n-1].innerHTML.replace(/ *\([^)]*\) */g, "").replace(/[\D]+/g,''); var b = rowB.cells[n-1].innerHTML.replace(/ *\([^)]*\) */g, "").replace(/[\D]+/g,''); //rowB.cells[0].innerHTML = b; return b-a ; } function compareOrder(rowA, rowB) { var a = rowA.cells[0].innerHTML.replace(/[\D]+/g,''); var b = rowB.cells[0].innerHTML.replace(/[\D]+/g,''); return a-b ; } function compareLevel(rowA, rowB) { var a = rowA.cells[n-3].innerHTML.replace(/[\D]+/g,''); var b = rowB.cells[n-3].innerHTML.replace(/[\D]+/g,''); return a-b ; } function compareFrac(rowA, rowB) { var s = rowA.cells[n-4].innerHTML; var n1 = s.indexOf('dcdn.'); var a = s.slice(n1,s.indexOf('?',n1)).replace(/[\D]+/g,''); s = rowB.cells[n-4].innerHTML; n1 = s.indexOf('dcdn.'); var b = s.slice(n1,s.indexOf('?',n1)).replace(/[\D]+/g,''); return a-b ; } function compareAbc(rowA, rowB) { var s = rowA.cells[n-4].innerHTML; var a = s.slice(s.indexOf('class="pi">')+11,s.indexOf('</a>')).toLowerCase(); s = rowB.cells[n-4].innerHTML; var b = s.slice(s.indexOf('class="pi">')+11,s.indexOf('</a>')).toLowerCase(); if (a < b) { return -1; } else { return 1; } } function sortIvent() { sortedRows = Array.from(table.rows).sort(compareIvent); table.tBodies[0].append(...sortedRows); elems = table.rows; if (!iventCount) { for (i = 0; i < elems.length; i++) { elems[i].cells[n-1].innerHTML = elems[i].cells[n-1].innerHTML + ' (' + (i+1) + ')'; elems[i].cells[n-1].width = '100px'; } iventCount = true; } } function sortOrder() { sortedRows = Array.from(table.rows).sort(compareOrder); table.tBodies[0].append(...sortedRows); } function sortLevel() { sortedRows = Array.from(table.rows).sort(compareLevel); table.tBodies[0].append(...sortedRows); } function sortFrac() { sortedRows = Array.from(table.rows).sort(compareFrac); table.tBodies[0].append(...sortedRows); } function sortAbc() { sortedRows = Array.from(table.rows).sort(compareAbc); table.tBodies[0].append(...sortedRows); } function sortInitial() { sortIvent(); sortOrder(); } function sortClan() { switch (document.getElementById('selSort').value) { case 'num': sortOrder(); break; case 'ivent': sortIvent(); break; case 'frac': sortFrac(); break; case 'abc': sortAbc(); break; case 'level': sortLevel(); break; } } if (location.href.indexOf('clan_info.php') != -1) { // страница инфы клана со списком var elements = document.querySelectorAll("table"); for ( i = 0; i < elements.length; i++) { if (elements[i].rows.length > 99) { //alert(elements[i].rows.length); table = elements[i]; n = table.rows[1].cells.length; break; } } paramTbl = document.createElement('table'); paramTbl.innerHTML = '<tbody> '+ '<tr> '+ //'<td align="left"> <input type="button" id="butSortOrder" value="Сортировать по порядку" /></td>'+ //'<td align="right"> <input type="button" id="butSortIvent" value="Сортировать по очкам в ивенте" /></td>'+ `<td>Сортировать список клана: <select id="selSort"> <option value="num" selected>По порядку номеров</option> <option value="ivent">По очкам в ивенте</option> <option value="level">По уровню героя</option> <option value="abc">По нику (имени) героя</option> <option value="frac">По фракции героя</option> </select></td>`+ '</tr> '+ '</tbody>'; paramTbl.id="paramTbl"; paramTbl.align="left"; paramTbl.width="100%"; paramTbl.style.borderCollapse = 'collapse'; paramTbl.setAttribute('border',2); paramTbl.setAttribute('cellpadding',4); //document.body.append(paramTbl); table.before(paramTbl); document.getElementById('selSort').onchange = sortClan; sortInitial(); } })();