Author Topic: Browser script to navigate Unread topics page by keyboard (and ignore topics)  (Read 1851 times)

Offline rocx

  • Full Member
  • ***
  • Posts: 384
  • NL
  • Liked: 263
  • Likes Given: 145
Hello NSF users,

I don't know how all of you read the NSF forum, but I like to use the Unread topics page to follow everything going on on this forum. To make my life easier, I have written a script in TamperMonkey for Chrome (should also work in GreaseMonkey for Firefox) to navigate just by keyboard.

Here is how it works:
First, install GreaseMonkey or Tampermonkey, open a new file and copy the content into the editor.
The script only works on the Unread topics pages.
When loaded, the page will have small X buttons to the right of topics and the first topic title will be focused.
To jump to the next topic, press k.
To jump to the previous topic, press j.
To open this topic in a new tab/window, press o (unfortunately opening in the background from a script is blocked by modern browsers).
To open the last page in a new tab/window, press p.
To open the latest post in a new tab/window, press l.
To ignore this topic for the next month, press i. A cookie will be set in your browser and the next time the page loads this row will be removed from the table.
When you click the mouse somewhere the hotkeys will not work anymore, you'd have to reload the page or get focus back where it was by tabbing.

I publish this script to the public domain without any reservations. Feel free to ask questions in replies or personal messages. This script will very likely stop working when the forum is updated, and then I might rewrite it, unless Chris will have put all its functionality into the site itself.
« Last Edit: 09/22/2016 09:42 AM by rocx »
Any day with a rocket landing is a fantastic day.

Offline rocx

  • Full Member
  • ***
  • Posts: 384
  • NL
  • Liked: 263
  • Likes Given: 145
Small but important update: to make this script work on Firefox, you have to change line 24 from
function openTopic() {
to
function openTopic(event) {
. It is now working for me as designed.
Any day with a rocket landing is a fantastic day.

Tags: