Vier nützliche kleine Scripts zum Aufpeppen von Firefox und Chrome
Sortierfunktion in Tabellen hinzufügen
Manchmal finden Sie auf Websites Tabellen, die Sie gerne nach anderen Kriterien sortieren würden. Während ein modernes CMS von sich aus eine Sortierfunktion anbieten sollte, gibt es Sites (so leider auch derzeit noch der PCtipp), die in ihren Tabellen keine Sortierknöpfe einbauen können. Aber mit dem Tabellen-Sortier-Bookmarklet gehts für Sie dann doch.
Was es macht: Haben Sie eine Tabelle vor sich, die Sie gerne anders sortieren würden – und bietet die Webseite dies nicht von sich aus an, klicken Sie aufs TabSort-Bookmarklet. Schon erscheinen oberhalb der einzelnen Spalten die kleinen Elemente Auf/Ab, über die Sie den Tabelleninhalt nach Ihrem Gusto auf- oder absteigend sortieren. Soll die Seite in den Ursprungszustand zurückkehren, laden Sie sie mit F5 neu.
So gehts: Klicken Sie mit rechts auf die Lesezeichenleiste und wählen Sie Lesezeichen hinzufügen. Für den Namen tippen Sie TabSort ein. Im Feld für die Adresse kommt keine Adresse rein, sondern der folgende, etwas lange JavaScript-Code. Kopieren Sie ihn einfach von hier, fügen Sie ihn ein und klicken Sie auf Speichern.
javascript:function toArray (c){var a, k;a=new Array;for (k=0; k<c.length; ++k)a[k]=c[k];return a;}function insAtTop(par,child){if(par.childNodes.length) par.insertBefore(child, par.childNodes[0]);else par.appendChild(child);}function countCols(tab){var nCols, i;nCols=0;for(i=0;i<tab.rows.length;++i)if(tab.rows[i].cells.length>nCols)nCols=tab.rows[i].cells.length;return nCols;}function makeHeaderLink(tableNo, colNo, ord){var link;link=document.createElement('a');link.href='javascript:sortTable('+tableNo+','+colNo+','+ord+');';link.appendChild(document.createTextNode((ord>0)?'Auf':'Ab'));return link;}function makeHeader(tableNo,nCols){var header, headerCell, i;header=document.createElement('tr');for(i=0;i<nCols;++i){headerCell=document.createElement('td');headerCell.appendChild(makeHeaderLink(tableNo,i,1));headerCell.appendChild(document.createTextNode('/'));headerCell.appendChild(makeHeaderLink(tableNo,i,-1));header.appendChild(headerCell);}return header;}g_tables=toArray(document.getElementsByTagName('table'));if(!g_tables.length) alert("This page doesn't contain any tables.");(function(){var j, thead;for(j=0;j<g_tables.length;++j){thead=g_tables[j].createTHead();insAtTop(thead, makeHeader(j,countCols(g_tables[j])))}}) ();function compareRows(a,b){if(a.sortKey==b.sortKey)return 0;return (a.sortKey < b.sortKey) ? g_order : -g_order;}function sortTable(tableNo, colNo, ord){var table, rows, nR, bs, i, j, temp;g_order=ord;g_colNo=colNo;table=g_tables[tableNo];rows=new Array();nR=0;bs=table.tBodies;for(i=0; i<bs.length; ++i)for(j=0; j<bs[i].rows.length; ++j){rows[nR]=bs[i].rows[j];temp=rows[nR].cells[g_colNo];if(temp) rows[nR].sortKey=temp.innerHTML;else rows[nR].sortKey="";++nR;}rows.sort(compareRows);for (i=0; i < rows.length; ++i)insAtTop(table.tBodies[0], rows[i]);}
Ausprobieren können Sie es dann z.B. an dieser kleinen Tabelle.
11.11.2022