UserJS
bleicher
- zu diesem forum
0 molily0 bleicher0 Shadowcrow0 Beat
Grüße,
ich hatte was besseres zu tun, also entsand dies UserJS, nicht optimal, aber war ein zeitvertrieb ;). idee ist die ganz neuen postings farblich hervorzuhebebn, mit Gradeinteilung (unter 1 minute, unter 5 etc)
// ==UserScript==
// @include http://forum.de.selfhtml.org/*
// ==/UserScript==
function selfhtmldatumsleser(){
var antworten=[]
var host=window.location.host;
var datum,zeit,temp, timestamp,diff,color;
var now=new Date();
now=now.getTime();
var spans=document.body.getElementsByTagName("span");
for(var i=0;i<spans.length;i++){
//alert(spans[i].className);
if(spans[i].className=="posting"){
//jetzt datum rausfiltern
temp=spans[i].childNodes;
for(var q in temp){
if(temp[q].className=="date"){
datum=temp[q].innerHTML.split(",");
zeit=datum[1].split(":");
datum=datum[0].split(".");
timestamp=new Date(datum[2],(datum[1]-1),datum[0],zeit[0],zeit[1]);
diff=(now-timestamp.getTime())/60000;
if(diff<1){
temp[q].style.color="#f1630c";
temp[q].style.fontSize="130%";
}else if(diff>=1 && diff <4){
temp[q].style.color="#d96117";
temp[q].style.fontSize="120%";
}else if(diff>=4 && diff <10){
temp[q].style.color="#fa670c";
temp[q].style.fontSize="115%";
}else if(diff>10 && diff<15){
temp[q].style.color="#eb6513";
temp[q].style.fontSize="110%";
}
//temp[q].innerHTML+="##"+diff;
temp[q].style.fontSize="110%";
}
}
}
}
}
document.addEventListener("DOMContentLoaded", selfhtmldatumsleser, false);
MFG
bleicher
Hallo,
var now=new Date();
now=now.getTime();
Warum nicht gleich:
var now = (new Date).getTime()
var spans=document.body.getElementsByTagName("span");
Kennst du
var spans = document.querySelectorAll('span.posting');
temp=spans[i].childNodes; for(var q in temp){
<mecker>
Man sollte nie Knotenlisten mit for..in durchlaufen. Da bekommst du jede Menge Schmus herein, nicht nur die Elemente der Liste.
Mit for..in kann man Objekte (Hashes) durchlaufen, meist abgesichert durch eine hasOwnProperty-Extraprüfung, um vererbte Member auszuschließen. Für sämtliche Arrays, Listen und Knotenlisten ist eine einfache for-Schleife die beste Wahl.
</mecker>
Mathias
Grüße,
var now=new Date();
now=now.getTime();Warum nicht gleich:
var now = (new Date).getTime()
hast recht
var spans=document.body.getElementsByTagName("span");
Kennst du
var spans = document.querySelectorAll('span.posting');
nein, schau mir aber bald an
temp=spans[i].childNodes; for(var q in temp){
<mecker>
Man sollte nie Knotenlisten mit for..in durchlaufen. Da bekommst du jede Menge Schmus herein, nicht nur die Elemente der Liste.
na ja - optimierungsfähig ist es ja^^
Mit for..in kann man Objekte (Hashes) durchlaufen, meist abgesichert durch eine hasOwnProperty-Extraprüfung, um vererbte Member auszuschließen. Für sämtliche Arrays, Listen und Knotenlisten ist eine einfache for-Schleife die beste Wahl.
</mecker>
ich überprüfe ja eh ob es passendes classe hat, mit der obigen abfrage könnte es sich aber ändern, ich schau es mir an.
so anders gefragt - würde jemand außer mir den nutzen ^^? sonst brauchts ja keine optimierung.
MFG
bleicher
'ǝɯɐu$ ıɥ
so anders gefragt - würde jemand außer mir den nutzen ^^? sonst brauchts ja keine optimierung.
ich wäre interessiert :-)
ʍopɐɥs
so anders gefragt - würde jemand außer mir den nutzen ^^? sonst brauchts ja keine optimierung.
Als Ansporn für dein Lernen, ich melde Interesse für ein Dutzend an.
mfg Beat