您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
HWM Clan Filter
// ==UserScript== // @name HWM_Clan_Filter // @description HWM Clan Filter // @include http://www.heroeswm.ru/clan_info.php* // @version 0.0.1.20140618144557 // @namespace https://greasyfork.org/users/2879 // ==/UserScript== var url_cur = location.href ; //alert("HWM_Clan_Filter"); var m_online_str = "i/clans/online.gif"; var m_offline_str = "i/clans/offline.gif"; var m_battle_str = "i/clans/battle.gif"; var m_cards_str = "i/clans/arcomag.gif"; var my_clan_table = getClanTable(); //alert("found clan table! my_clan_table = \n"+ my_clan_table.innerHTML); var clanRowsNodes_arr = my_clan_table.childNodes[0].childNodes; //alert("clan members = "+clanRowsNodes_arr.length); //alert("my_node = "+clanRowsNodes_arr[0].childNodes[2].childNodes[3]); //alert("my_node = "+clanRowsNodes_arr[0].childNodes[2].childNodes[5].innerHTML); // tech: 1-bk, 3-name, 5 fract // batl: 1-name, 3 fract var sortTable_div = document.createElement( 'div' ); sortTable_div.innerHTML = "temp text, should not be seen"; my_clan_table.parentNode.insertBefore(sortTable_div, my_clan_table); // sorting flags var doSort1 = false; var doSort2 = false; // status var doSort_bk = false; //bk var doSort_fr = false; //fraction var doSort3 = false; // name var doSort4 = false; // level var doSort5 = false; // descr var isBattleClan = ( my_clan_table.innerHTML.indexOf("clan_info.php")==-1); addSortTable(); // bk name fract descr Lv // \u0411\u041A \u0418\u043C\u044F \u0424\u0440\u0430\u043A\u0446\u0438\u044F \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u041B\u0432 function addSortTable(){ //var link_sort1 = '<a href="javascript:void(0);" id="clanTblSort1" style="background:'+(doSort1?"#6c6":"none")+';">[#]</a>'; var link_sort1 = '#'; var link_sort2 = '<a href="javascript:void(0);" id="clanTblSort2" style="background:'+(doSort2?"#6c6":"none")+';">C</a>'; var link_sort_bk = '<a href="javascript:void(0);" id="clanTblSort_bk" style="background:'+(doSort_bk?"#6c6":"none")+';">[\u0411\u041A]</a> '; link_sort_bk = isBattleClan? "" : link_sort_bk; var link_sort3 = '<a href="javascript:void(0);" id="clanTblSort3" style="background:'+(doSort3?"#6c6":"none")+';">[\u0418\u043C\u044F]</a>'; var link_sort_fr = ' <a href="javascript:void(0);" id="clanTblSort_fr" style="background:'+(doSort_fr?"#6c6":"none")+';">[\u0424\u0440\u0430\u043A\u0446]</a>'; var link_sort4 = '<a href="javascript:void(0);" id="clanTblSort4" style="background:'+(doSort4?"#6c6":"none")+';">\u041B\u0432</a>'; var link_sort5 = '<a href="javascript:void(0);" id="clanTblSort5" style="background:'+(doSort5?"#6c6":"none")+';">[\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435]</a>'; var sortHeaders = '<tr>'+ '<td class=wblight width=30><b>'+ link_sort1 +'</b></td>'+ '<td class=wblight width=15><b>'+ link_sort2 +'</b></td>'+ '<td class=wblight width=150><b>'+ link_sort_bk+ link_sort3 +link_sort_fr +'</b></td>'+ '<td class=wblight width=10><b>'+ link_sort4 +'</b></td>'+ '<td class=wblight><b>'+ link_sort5 +'</b></td>'+ '</tr>'; var sortedRows = getSortedRows(); sortTable_div.innerHTML = '<table class=wb width="80%" cellpadding=3 align=center>'+ sortHeaders +sortedRows+ '</table>'; //sortTable_div.innerHTML += "<hr width='50%'>"; // add listeners //document.getElementById('clanTblSort1').addEventListener( "click", clanTblSort1 , false ); document.getElementById('clanTblSort2').addEventListener( "click", clanTblSort2 , false ); if(!isBattleClan){ document.getElementById('clanTblSort_bk').addEventListener( "click", clanTblSort_bk , false ); } document.getElementById('clanTblSort_fr').addEventListener( "click", clanTblSort_fr , false ); document.getElementById('clanTblSort3').addEventListener( "click", clanTblSort3 , false ); document.getElementById('clanTblSort4').addEventListener( "click", clanTblSort4 , false ); document.getElementById('clanTblSort5').addEventListener( "click", clanTblSort5 , false ); // // if(!doSort1 && !doSort2 && !doSort3 && !doSort_bk && !doSort_fr && !doSort4 & !doSort5){ // NO filters my_clan_table.style.display = ""; }else{ // hide default table my_clan_table.style.display = "none"; } } // // function getSortedRows(){ //var rows_str = clanRows_arr[0].innerHTML ; var rows_str = "" ; if(!doSort1 && !doSort2 && !doSort3 && !doSort_bk && !doSort_fr && !doSort4 & !doSort5){ return rows_str; } // NO filters // var clanRowsStr_arr = []; for(var i=0; i<clanRowsNodes_arr.length; i++){ clanRowsStr_arr.push( [i, clanRowsNodes_arr[i].innerHTML] ); } // //clanRowsStr_arr.reverse(); clanRowsStr_arr.sort(mySort4Clan); // for(i=0; i<clanRowsStr_arr.length; i++){ rows_str += "<tr>" +clanRowsStr_arr[i][1] +"</tr>"; } return rows_str; } // function mySort4Clan(a,b){ var ax, bx; var tn; var res = 0; // sort according to priority... from less to max // 1st - sort by num... ax = Number(clanRowsNodes_arr[a[0]].childNodes[0].innerHTML); bx = Number(clanRowsNodes_arr[b[0]].childNodes[0].innerHTML); res = (ax<bx)? -1 :(ax>bx)? 1 : 0; // if(doSort5){ //descr ax = clanRowsNodes_arr[a[0]].childNodes[4].innerHTML; bx = clanRowsNodes_arr[b[0]].childNodes[4].innerHTML; if(ax==" " && bx!=" "){ res = 1; }else if(ax!=" " && bx==" "){ res = -1; }else{ res = (ax<bx)? -1 :(ax>bx)? 1 : res; } } // if(doSort_bk && !isBattleClan){ //BK ax = clanRowsNodes_arr[a[0]].childNodes[2].childNodes[1].innerHTML; bx = clanRowsNodes_arr[b[0]].childNodes[2].childNodes[1].innerHTML; res = (ax<bx)? -1 :(ax>bx)? 1 : res; } // if(doSort_fr ){ // fract tn = isBattleClan? 3: 5; if(isBattleClan || clanRowsNodes_arr[a[0]].childNodes[2].innerHTML.indexOf("clan_info.php")!=-1){ ax = clanRowsNodes_arr[a[0]].childNodes[2].childNodes[tn].title; }else{ ax = clanRowsNodes_arr[a[0]].childNodes[2].childNodes[3].title; } if(isBattleClan || clanRowsNodes_arr[b[0]].childNodes[2].innerHTML.indexOf("clan_info.php")!=-1){ bx = clanRowsNodes_arr[b[0]].childNodes[2].childNodes[tn].title; }else{ bx = clanRowsNodes_arr[b[0]].childNodes[2].childNodes[3].title; } res = (ax<bx)? -1 :(ax>bx)? 1 : res; } // if(doSort3 ){ //name tn = isBattleClan? 1: 3; if(isBattleClan || clanRowsNodes_arr[a[0]].childNodes[2].innerHTML.indexOf("clan_info.php")!=-1){ ax = clanRowsNodes_arr[a[0]].childNodes[2].childNodes[tn].innerHTML.toLowerCase(); }else{ ax = clanRowsNodes_arr[a[0]].childNodes[2].childNodes[1].innerHTML.toLowerCase(); } if(isBattleClan || clanRowsNodes_arr[b[0]].childNodes[2].innerHTML.indexOf("clan_info.php")!=-1){ bx = clanRowsNodes_arr[b[0]].childNodes[2].childNodes[tn].innerHTML.toLowerCase(); }else{ bx = clanRowsNodes_arr[b[0]].childNodes[2].childNodes[1].innerHTML.toLowerCase(); } res = (ax<bx)? -1 :(ax>bx)? 1 : res; } // if(doSort4){ //level descending ax = Number(clanRowsNodes_arr[a[0]].childNodes[3].innerHTML); bx = Number(clanRowsNodes_arr[b[0]].childNodes[3].innerHTML); res = (ax<bx)? 1 :(ax>bx)? -1 : res; } // if(doSort2){ //status ax = clanRowsNodes_arr[a[0]].childNodes[1].innerHTML; bx = clanRowsNodes_arr[b[0]].childNodes[1].innerHTML; if(ax.indexOf("i/clans/offline.gif")==-1 && bx.indexOf("i/clans/offline.gif")!=-1 ){ res = -1; }else if(ax.indexOf("i/clans/offline.gif")!=-1 && bx.indexOf("i/clans/offline.gif")==-1 ){ res = 1; }else { res = (ax<bx)? -1 :(ax>bx)? 1 : res; } } // // return res; } // // listeners function clanTblSort1(){ doSort1 = !doSort1; addSortTable(); } function clanTblSort2(){ doSort2 = !doSort2; addSortTable(); } function clanTblSort_bk(){ doSort_bk = !doSort_bk; addSortTable(); } function clanTblSort_fr(){ doSort_fr = !doSort_fr; addSortTable(); } function clanTblSort3(){ doSort3 = !doSort3; addSortTable(); } function clanTblSort4(){ doSort4 = !doSort4; addSortTable(); } function clanTblSort5(){ doSort5 = !doSort5; addSortTable(); } // // function getClanTable(){ var all_tbl = document.getElementsByTagName('table'); var my_tbl; for (var i = 0; i < all_tbl.length; i++) { my_tbl = all_tbl[i]; // if(my_tbl.innerHTML.indexOf('<table')!=-1 ){ continue; } // has child tables... // var has_online_gif = (my_tbl.innerHTML.indexOf(m_online_str)!=-1 ); var has_offline_gif = (my_tbl.innerHTML.indexOf(m_offline_str)!=-1 ); var has_battle_gif = (my_tbl.innerHTML.indexOf(m_battle_str)!=-1 ); var has_cards_gif = (my_tbl.innerHTML.indexOf(m_cards_str)!=-1 ); // if(has_online_gif || has_offline_gif || has_battle_gif || has_cards_gif){ return my_tbl; } } } // ========= END ==============