I have written a bookmarklet that expands all comments and replies in Facebook posts. This applies to the full version of the Facebook website. Bookmarklets are not the prettiest or best understood things in the world, but I’m making it available in case people want to use it:
To install the bookmarklet, click here to bring up a page with the bookmarklet in it, along with some simple instructions. (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 Facebook posts so that you can see/read all comments and replies from top to bottom without clicking. To isolate a single post to a browser tab, ctrl-click on the post’s time stamp (which is a permalink URL). Then, run the bookmarklet on the isolated post. Or, run the bookmarklet on multiple posts (e.g., search results in a private group) and it will expand all posts it finds.
2016-07-09 update. The permalink URL to a public page (for celebrities, businesses, etc.) stopped isolating the post; now the whole news feed is displayed with the post of interest at the top. If a page like this is encountered, only the permalinked post is expanded. Facebook has changed how they do this at least twice now; I’m trying to keep up.
Also, Facebook sometimes goes into theater mode (one post rendered on top of the news feed). If this happens, hit ESC to go back to the main feed before expanding.
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.
Mozilla Firefox also works, though getting the bookmark bar to show up is a bit cumbersome.
I tried Microsoft Edge once just to make sure things seem to work there (which they did). Bookmarklets in Edge was a complete hack through the file system; really, not supported.
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 (open Continue Reading links)
- 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 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.
- 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.