Hallo
Om nah hoo pez nyeetz, Matthias Apsel!
Oh, ein Selbstgespräch. :-)
Ja, das kann ich bestätigen. Das JavaScript ersetzt einfach die vorhandenen Klassen, etwa "title geändert" durch "visited".
Man könnte innerhalb der Funktion
/* {{{ Threads als gelesen markieren */
function visited(tid) {
if(!xmlhttp) return true;var date = new Date();
var li = document.getElementById('t'+tid);
var list = li.parentNode;
var uri = forum_base_url+'?mv='+tid+'&t='+tid+'&mode=xmlhttp&unique='+date.getTime();
if(csrftoken) uri += "&csrftoken=" + encodeURIComponent(csrftoken);var cnt = xmlhttp_get_contents(xmlhttp,uri,null,null);
var el = document.createElement('div');
el.innerHTML = cnt;list.replaceChild(el.getElementsByTagName('li')[0],li);
return false;
}
Bis `var cnt = xmlhttp_get_contents()`{:.language-javascript} kann ich dem Code folgen. Es werden ein paar Variablen deklariert, die die ID des Threads ermitteln, ein Datum generieren und damit einen URI zusammenbauen. Schlussendlich wird ein request abgesetzt. So weit, so gut.
Aber wo ist hernach das div, in das der Rückgabewert des Requests eingefügt wird? Ich habe gerade einen thread mit ungelesenen Postings als gelesen markiert, dann den bereich markiert und mir den generierten Quelltext angeschaut. Weit und breit kein div in Sicht …!?
> diese Funktionen
>
> ~~~javascript
// geänderte Kategorien und titel
> $(document).ready(function(){
> $('#root').addClass('js');
> $('.thread-start > ul ul .category, .thread-start > ul ul .cathigh').each(function(){
> if ($(this).html() != $(this).parents().eq(4).find(".category, .cathigh").first().html()) $(this).addClass('geändert');
> })
>
> $('.thread-start > ul ul .title').each(function(){
> if ($(this).html() != $(this).parents().eq(4).find(".title").first().html()) $(this).addClass('geändert');
> })
> })
>
> // TO hervorheben
> $(document).ready(function(){
> var $author = $('.thread-start .author').first().html();
> $('.thread-start > ul ul .author').each(function(){
> if ($(this).html() == $(this).parents('.thread-start').find('.author').first().html()) $(this).addClass('to');
> })
> $('.nachricht-autor > strong:first-child, .nachricht-autor > a > strong, .antwort-auf > strong + a + strong').each(function(){
> if ($(this).html() == $author) $(this).addClass('to');
> })
> })
aufrufen. Allerdings ist da noch etwas Umschreibearbeit notwendig. Zum Beispiel brauchen die Funktionen einen Namen, damit sie aufgerufen werden können.
Wenn sie denn einen Namen brauchen, brauchen sie den auch an allen anderen Ecken und Enden, an denen sie aufgerufen werden, so sie dort aufgerufen werden, oder?
Also, wenn du magst, Auge ;-)
Hatte ich schon gesagt, dass …
Mal etwas anderes. Ein kleines Rätsel:
Der Thread ist als vollständig gelesen markiert und zugeklappt. Was passt nicht zum Rest?
<li class="thread-start" id="t218548">
<ul>
<li class="visited" id="m1505322">
<a href="#" title="Thread aufklappen" class="link-thread-aufklappen" onclick="return snap('218548','open');">
<img src="/forum/ordner_zu.png" alt="Thread aufgeklappt" height="13" width="18">
</a>
<!-- … -->
Tschö, Auge
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3