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.
Die unscheinbaren Auf/Ab-Elemente über den Spalten wurden durch das Bookmarklet eingefügt
Quelle: PCtipp.ch
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.



Kommentare
Avatar
PeterKeist
11.11.2022
Damit lässt sich der Seiteninhalt direkt im Browser editieren. Ist sehr praktisch um vor dem Drucken einer Seite gewisse Teile (z.B. Werbung ;-) ) zu löschen: [CODE=javascript]javascript:document.body.contentEditable='true';document.designMode='on';void 0;[/CODE]