Beiträge des TO's im Thread hervorheben

OP #4833847
Lesenswert?
• ▲
▼
Hallo,

als ich gerade im IMDB-Forum herumgesurft bin, kam mir für das µc-Forum 
folgende Idee: Innerhalb eines Threads sollten Beiträge des TO's 
besonders gekennzeichnet werden, z.B. in dem sein Name im Autorenfeld 
fett hervorgehoben wird.
Oder man macht es wie auf IMDB, wo der Name in so einem blauen Kasten 
mit abgerundeten Ecken erscheint.

Also ich habe beim Lesen oft das Problem, dass ich nicht weiß ob der TO 
geantwortet hat ohne wieder nach oben scrollen zu müssen.
#4833857
Lesenswert?
• ▲
▼
Slippin J. schrieb:
> als ich gerade im IMDB-Forum herumgesurft bin, kam mir für das µc-Forum
> folgende Idee: Innerhalb eines Threads sollten Beiträge des TO's
> besonders gekennzeichnet werden, z.B. in dem sein Name im Autorenfeld
> fett hervorgehoben wird.

Den Vorschlag gab es schon:
Beitrag "Markieren des Themenstarters"

Wie hier im Forum leider üblich, gab es nie eine Antwort von offizieller 
Seite.
Gast #4835565
Lesenswert?
• ▲
▼
Folgende Lösung fände ich praktisch:

Per Klick auf den Namen des Autors werden alle Beiträge dieser Person 
hervorgehoben im Thread. Das kann auch gerne Clientseitig in Javascript 
ablaufen.
Aber eben nicht nur auf den TO beschränkt.
#4836483
Lesenswert?
• ▲
▼
meckerziege schrieb:
> Per Klick auf den Namen des Autors werden alle Beiträge dieser Person
> hervorgehoben im Thread.

Ich habe mal eben einen JavaScript dafür geschrieben.

JavaScript ES5:
1
(function(){
2
  var posts = Array.prototype.slice.call(document.getElementsByClassName("post"));
3
  var last = null;
4
  posts.forEach(function(post){
5
    var name = post.querySelector(".author .name");
6
    if(!name)
7
      return;
8
    name.addEventListener("click",function(event){
9
      if( event.target != name )
10
        return;
11
      var p = post.dataset.userId ? "userId" : "guestName";
12
      var pset = posts.filter(function(e){
13
        return e.dataset[p] == post.dataset[p];
14
      });
15
      if( last ){
16
        last.forEach(function(post){
17
          post.style.outline = "initial";
18
        });
19
      }
20
      pset.forEach(function(post){
21
        post.style.outline = "4px dotted #f80";
22
      });
23
      last = pset;
24
    });
25
  });
26
})();

Oder als Bookmarklet:
1
javascript:void((function(){var posts = Array.prototype.slice.call(document.getElementsByClassName("post"));var last = null;posts.forEach(function(post){var name = post.querySelector(".author .name");if(!name)return;name.addEventListener("click",function(event){if( event.target != name )return;var p = post.dataset.userId ? "userId" : "guestName";var pset = posts.filter(function(e){return e.dataset[p] == post.dataset[p];});if( last ){last.forEach(function(post){post.style.outline = "initial";});}pset.forEach(function(post){post.style.outline = "4px dotted #f80";});last = pset;});});})())
Gast #4836539
Lesenswert?
• ▲
▼
Daniel A. schrieb:
> Ich habe mal eben einen JavaScript dafür geschrieben.

Cool! Habe gerade mal gegoogelt wie man das nutzt. (Tipp für die es auch 
nicht wissen, z.B. im IE11: Ein vorhandenes Lesezeichen mit rechtsklick 
auf Eigenschaften und dann in dem Feld URL die einzeilige Version 
(Bookmarklet) einfügen)
War mir neu solche Dinge auf User Seite einfach hinzuzufügen. Jetzt 
fehlt nur noch, ein nochmaliger klick deaktiviert das Highlighten wieder 
:-)
Leider weis ich nicht wie man das programmiert.
#4836572
Lesenswert?
• ▲
▼
homa schrieb:
> Jetzt fehlt nur noch, ein nochmaliger klick deaktiviert das Highlighten wieder

JavaScript ES6:
1
(function(){
2
  var posts = Array.prototype.slice.call(document.getElementsByClassName("post"));
3
  var last = null;
4
  posts.forEach(function(post){
5
    var name = post.querySelector(".author .name");
6
    if(!name)
7
      return;
8
    name.addEventListener("click",function(event){
9
      if( event.target != name )
10
        return;
11
      if( last ){
12
        last.forEach(function(post){
13
          post.style.outline = "initial";
14
        });
15
      }
16
      var p = post.dataset.userId ? "userId" : "guestName";
17
      if( !last || !last.length || post.dataset[p] != last[0].dataset[p] ){
18
        var pset = posts.filter(function(e){
19
          return e.dataset[p] == post.dataset[p];
20
        });
21
        pset.forEach(function(post){
22
          post.style.outline = "4px dotted #f80";
23
        });
24
        last = pset;
25
      }else{
26
        last = null;
27
      }
28
    });
29
  });
30
})();

Bookmarklet:
1
javascript:void((function(){var posts = Array.prototype.slice.call(document.getElementsByClassName("post"));var last = null;posts.forEach(function(post){var name = post.querySelector(".author .name");if(!name)return;name.addEventListener("click",function(event){if( event.target != name )return;if( last ){last.forEach(function(post){post.style.outline = "initial";});}var p = post.dataset.userId ? "userId" : "guestName";if( !last || !last.length || post.dataset[p] != last[0].dataset[p] ){var pset = posts.filter(function(e){return e.dataset[p] == post.dataset[p];});pset.forEach(function(post){post.style.outline = "4px dotted #f80";});last = pset;}else{last = null;}});});})())
Gast #4836706
Lesenswert?
• ▲
▼
Leider nein - klappt nicht. Aber F5 für neu laden hilft auch, wobei dann 
alle Markierungen weg sind. Ich bin trotzdem begeistert und werde mich 
mal mit javascript und diesen bookmarklet beschäftigen. Interesse 
geweckt.
Gast #6051397
Lesenswert?
• ▲
▼
Micha schrieb:
> Daniel A. schrieb:
>> Die neue kursive Darstellung der Gästenamen mit dem <i> tag fürt dazu,
>> das das Script für diese nicht mehr richtig läuft.
>
> Wie äußert sich das? Bei mir scheint es noch zu funktionieren.

Wenn du auf das "(Gast)" klickst, das geht, aber wenn man auf den 
kursiven Namen davor klickt, das macht nichts mehr.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.