I have written a bookmarklet to expand all comments and replies in a given Facebook post. This applies to the full version of the Facebook website. Bookmarklets are not the prettiest things in the world, but here it is in case someone wants to use it:
Click here to bring up a page with the bookmarklet in it. (I couldn’t figure out how to deliver this in WordPress without WordPress corrupting the URL.)
What does this help with?
I have found that Facebook posts that have comments (and replies) are displayed with all or most of the comments (and replies) hidden with links to show them. Even if I click the links, I usually only get up to a “page” more of comments or replies. Also, clicking shifts the content, so I lose track of where I am. Sometimes I see separate links to previous and subsequent replies. If there are ten comments with one reply each, I need to click ten times to bring over ten replies. Long comments are truncated with See More links. I have found that when a post is closed up like this, I click on a few links and lose interest very quickly.
This expands a Facebook post, so that you can see/read all comments and replies from top to bottom without clicking. First, you’ll need to isolate an individual post in a browser tab, which you’ll do by (e.g.) ctrl-clicking on the post’s time stamp (which is a permalink URL). Then, run the bookmarklet on the isolated post.
I mostly use the Google Chrome browser on a Windows PC, and I don’t use mobile devices. Among the main browsers, bookmarks in Chrome were the easiest and most intuitive to use. My Chrome version is currently 47.0.
I tried Mozilla Firefox and Microsoft Edge once just to make sure things seem to work there (which they did), but I don’t use those browsers regularly. Firefox, including its approach to bookmarks, frustrates me. (Warning: I tried Firefox 42.0 just now and couldn’t get it to work.) Bookmarklets in Edge was a complete hack through the file system; really, not supported (but it does work).
Details of what this does
Output is logged to both a temporary visual text area and to the browser console. The text area goes away when it’s done, so if you want to see a record of what happened after the fact, you’ll need to hit F12 and open the browser console. When the script completes, it logs a numerical total of all comments and replies being displayed.
The bookmarklet clicks on the following links, sequentially. That is, it clicks and waits for the new content, which is recursively checked for new links:
- View more comments
- View previous replies
- View more replies
- View [x] more replies
- [x] replies
- [user] replied
After all the comments and replies are obtained, it clicks any and all See Translation and See More links.
It finds links to click by querying on CSS style names and is thus language independent, but see the Warnings ahead.
This isn’t recommended on posts that have many thousands of comments:
- First, you probably aren’t really interested in posts with that many comments.
- Second, I have found that Facebook stops delivering comments after 1,000; you can click the View more comments link, and nothing happens (visually, anyway). This bookmarklet bumps into the same limitation: it will iteratively click the View more comments link and eventually time out as nothing happens.
That said, you still might want to try this, if you are searching for a specific person’s comment or reply among many. Just be aware that eventually Facebook stops delivering comments.
If you need to stop the bookmarklet, hit ESC.
Customizing the Bookmarklet
You can customize what the bookmarklet does. You can create multiple bookmarklets, each with a different customization.
As you’re creating or editing the bookmarklet, you will see near the very beginning todo=15. You can change the single-digit numerical value. With this number, you control four bits of instruction:
- 1: expand the post itself
- 2: expand comments
- 4: expand replies
- 8: click on any translation links
In combination, there are 16 possible values: 0 through 15. Some examples, starting with a value of 15:
- Subtract 4 to not expand replies
- Subtract 8 to remove the translation step
Note that I only regularly use (hence, test) the default value.
Why did I do this?
I looked around to see if someone else had done something like this already, and of course I might have missed something, but it quickly became apparent to me that it would be easier to do this myself than to keep looking for something that actually worked.
Warnings and notes
- This works today (literally, today) based on how Facebook is rendered in HTML today. It might break tomorrow, and I might or might not fix it.
- Though the script doesn’t outright parse display text, it attempts to parse integers as a way to avoid clicking Hide links. I have tried about 10 different languages, all of which worked (I think). Please let me know if you find a problematic language, such as where the script shows and hides replies endlessly.
- This is intended to expand individual posts, not your entire news feed. Though I’ve added the capability of expanding multiple posts, I never use (hence, test) this feature.
- You can run the bookmarklet multiple times; it’s harmless. Sometimes it helps to do this if Facebook is slow and timeouts result in an incomplete expansion.