Wpis z mikrobloga

Hej,

Jak zrobić skryptozakładkę - #bookmarklet która by na kochanym #fb automatycznie rozwijała treści, komentarze....
taki auto expand treści stopowanych takimi napisami jak "Zobacz więcej" czy "Continue Reading", "See More", "View more comments" etc.

To samo na wykopie - może ma ktoś jakiś userscripts mam dość ciągłego klikania w "pokaż całość", "więcej komentarzy" ew. nawet nadużywane i szkoda rąk aby w to klikać, więc byłbym wdzięczny za jakąś pomoc.

Mam taki poniższy skrypcik powinien działać uniwersalnie ale nie działa, dlaczego?:

javascript:function findmoreandclick(){function i(e){if(e.length<=0){return}e[0].click();window.setTimeout(function(){i(e.splice(1))},800)}var e=document.getElementsById("contentArea");var t=[];for(var n=0;n0){window.setTimeout(function(){findmoreandclick()},800)}}findmoreand_click();

Jestem kompletnie zielony więc będę wdzięczny za jakiekolwiek wskazówki.

#wykop #facebook #webdev #skryptozakladka #technologia #facebookcontent #programowanie #javascript #nodejs #jquery
  • 13
@kolotego: nie ma czegos takiego jak getElementsById. id musi byc unikalne i teoretycznie tylko jeden element na stronie moze jednoczesnie miec dane id.

Moze byc getElementById (pojedynczy element), albo getElementsByClassName, wtedy wybierasz elementy po klasach (wiele elementow moze miec dana klase).
@kolotego: o zrobiłem i działa dla wykopu:

javascript:function findmoreandclick(){function i(e){if(e.length<=0){return}e[0].click();window.setTimeout(function(){i(e.splice(1))},800)}var e=document.getElementsByClassName("show-more");var t=[];for(var n=0;n0){window.setTimeout(function(){findmoreandclick()},800)}}findmoreand_click();
No to też sam zrobiłem sam dla pokaż całośc i działa ale już dla FB kompletnie nie wiem jak, podobnie dla komentarzy - bo mają zmienne teksty, ale będę próbować
@rbielawski: dzięki działa wyśmienicie, choć po prawej stronie komentarzy nie rozwija

Jednak na Facebooku już nie, stosuje tam taki kod dla "Continue Reading":

javascript:[].forEach.call(document.querySelectorAll("text_exposed_link"), function (element) {element.click();});
@kolotego: w querySelectorAll stosujesz selektory jak w css - przed nazwa klasy ma byc kropka.

Poszukaj sobie jakie sa klasy na elementach, ktore chcesz klikac i tyle. Jesli konkretny element nie ma zadnej klasy, to patrz jaka ma rodzic etc. (np tak jak tutaj '.more > a' - wybiera element 'a' bedacy bezposrednim dzieckiem klasy '.more'). Jak nie wiesz jak to dziala, to googlaj 'css selectors' - 5 minut czytania i
Działa, ale jak tylko znajdzie to otwiera nowe okno klikając, i mam całość ale dla pierwszego znalezionego elementu....
Nie działa tak jak powinno czyli rozwija na jednej stronie, a otwiera nową... FB się jakoś zabezpieczyło?
Rzeczywiści to działa genialne, za to z zobacz więcej nadal nie działa przekierowuje mnie na nową stronę... jeszcze pokombinuje

Tak robie:

javascript:[].forEach.call(document.querySelectorAll('.text_exposed_link a'), function (el) {el.onclick();});
Czyżby FB jakoś się zabezpieczył?