[Burichan] [Futaba] [Nice] [Pony]  -  [WT]  [Home] [Manage]
Psychic powers are more believable than something ignoring the square cube law.
[Return] [Entire Thread] [Last 50 posts] [Last 100 posts]
Posting mode: Reply
Name (optional)
Email (optional, will be displayed)
Subject    (optional, usually best left blank)
Message
File []
Embed (advanced)   Help
Password  (for deleting posts, automatically generated)
  • How to format text
  • Supported file types are: DAT, GIF, JPG, MP3, MP4, PNG, SWF, WEBM
  • Maximum file size allowed is 12500 KB.
  • Images greater than 250x250 pixels will be thumbnailed.

File 154423287460.jpg - (3.17KB , 200x200 , bookmark-icon_1947027.jpg )
29172 No. 29172 ID: e95cec

I wrote some bookmarklets to save your progress in quests! (Now that I've come looking for a place to post them, I see that there's a much more fully-featured thing that also keeps track of your quests. https://tgchan.org/kusaba/meep/res/24283.html Funny how you only find the thing you wanted after making one yourself. Buuuut mine is lighter weight, I guess, and less likely to break, probably. Maybe.) Basically, they're bits of javascript you can save as browser bookmarks, and when you click them the action will be performed. Strip off the "javascript:" and url-decode it to see the source code properly. It saves the data in a JSON object in local storage.

Use "save" to save your spot in a quest, and "load" to put a list of your bookmarks at the top of your screen. (And you can use "export" to show the JSON object in a popup, and "import" to re-import them. Just in case "import" ever fails to work right, maybe also just keep a backup copy of the result of "load". Also, "import" starts with the current list filled in, so you might not really even need "export".) Let me know if you have a problem or you want a new (small) feature, and there's a vague chance I'll get around to fixing it, haha.
>>
No. 29173 ID: e95cec

Save

javascript:%28function%28%29%7B%0A%2F%2F%20https%3A%2F%2Fcodegolf.stackexchange.com%2Fa%2F76801%0Avar%20hash%20%3D%20%28s%3D%3E%5B...s.replace%28%2F%5BA-Z%5D%2Fg%2Ca%3D%3E%28b%3Da.toLowerCase%28%29%29%2Bb%2Bb%29%5D.reduce%28%28a%2Cb%29%3D%3E%28a%3C%3C3%29%2A28-a%5Eb.charCodeAt%28%29%2C0%29%3C%3C8%3E%3E%3E8%29%3B%0A%0A%2F%2F%20https%3A%2F%2Fgomakethings.com%20kinda%0Avar%20isInViewport%20%3D%20function%20%28elem%29%20%7B%0A%20%20return%20%28elem.getBoundingClientRect%28%29.top%20%3E%3D%200%29%3B%0A%7D%3B%0A%0Avar%20findFirstVisiblePost%20%3D%20function%28%29%20%7B%0A%20%20var%20posts%20%3D%20document.querySelectorAll%28%27div.postwidth%20%3E%20label%20%3E%20input%27%29%3B%0A%20%20var%20firstVisible%20%3D%20null%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20posts.length%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20if%20%28isInViewport%28posts%5Bi%5D%29%29%20%7B%0A%20%20%20%20%20%20firstVisible%20%3D%20posts%5Bi%5D%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%20%28firstVisible%29%20%7B%0A%20%20%20%20return%20firstVisible.value%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20null%3B%0A%20%20%7D%0A%7D%3B%0A%0Avar%20getThreadId%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20input%22%29.value%3B%0A%7D%3B%0A%0Avar%20getThreadName%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20span%22%29.textContent.trim%28%29%3B%0A%7D%3B%0A%0Avar%20getBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20if%20%28%21bookmarkJson%29%20%7B%0A%20%20%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28%7B%7D%29%29%3B%0A%20%20%20%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20%7D%0A%20%20return%20JSON.parse%28bookmarkJson%29%3B%0A%7D%3B%0A%0Avar%20setBookmarks%20%3D%20function%28bookmarks%29%20%7B%0A%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28bookmarks%29%29%3B%0A%7D%3B%0A%0Avar%20exportBookmarks%20%3D%20function%28%29%20%7B%0A%20%20alert%28JSON.stringify%28getBookmarks%28%29%29%29%3B%0A%7D%3B%0A%0Avar%20savePlace%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%0A%20%20bookmarks%5BgetThreadId%28%29%5D%20%3D%20%7Bplace%3A%20findFirstVisiblePost%28%29%2C%20name%3A%20getThreadName%28%29%7D%3B%0A%20%20%0A%20%20setBookmarks%28bookmarks%29%3B%0A%7D%3B%0A%20%0Avar%20showBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%20%20%2F%2FTODO%0A%7D%3B%0A%0AsavePlace%28%29%3B%0A%0A%7D%29%28%29%3B
>>
No. 29174 ID: e95cec

Load

javascript:%28function%28%29%7B%0A%2F%2F%20https%3A%2F%2Fcodegolf.stackexchange.com%2Fa%2F76801%0Avar%20hash%20%3D%20%28s%3D%3E%5B...s.replace%28%2F%5BA-Z%5D%2Fg%2Ca%3D%3E%28b%3Da.toLowerCase%28%29%29%2Bb%2Bb%29%5D.reduce%28%28a%2Cb%29%3D%3E%28a%3C%3C3%29%2A28-a%5Eb.charCodeAt%28%29%2C0%29%3C%3C8%3E%3E%3E8%29%3B%0A%0A%2F%2F%20https%3A%2F%2Fstackoverflow.com%2Fa%2F14130005%2F513038%0Afunction%20htmlEntities%28str%29%20%7B%0A%20%20%20%20return%20String%28str%29.replace%28%2F%26%2Fg%2C%20%27%26amp%3B%27%29.replace%28%2F%3C%2Fg%2C%20%27%26lt%3B%27%29.replace%28%2F%3E%2Fg%2C%20%27%26gt%3B%27%29.replace%28%2F%22%2Fg%2C%20%27%26quot%3B%27%29%3B%0A%7D%0A%0A%2F%2F%20https%3A%2F%2Fgomakethings.com%20kinda%0Avar%20isInViewport%20%3D%20function%20%28elem%29%20%7B%0A%20%20return%20%28elem.getBoundingClientRect%28%29.top%20%3E%3D%200%29%3B%0A%7D%3B%0A%0Avar%20findFirstVisiblePost%20%3D%20function%28%29%20%7B%0A%20%20var%20posts%20%3D%20document.querySelectorAll%28%27div.postwidth%20%3E%20label%20%3E%20input%27%29%3B%0A%20%20var%20firstVisible%20%3D%20null%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20posts.length%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20if%20%28isInViewport%28posts%5Bi%5D%29%29%20%7B%0A%20%20%20%20%20%20firstVisible%20%3D%20posts%5Bi%5D%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%20%28firstVisible%29%20%7B%0A%20%20%20%20return%20firstVisible.value%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20null%3B%0A%20%20%7D%0A%7D%3B%0A%0Avar%20getThreadId%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20input%22%29.value%3B%0A%7D%3B%0A%0Avar%20getThreadName%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20span%22%29.textContent.trim%28%29%3B%0A%7D%3B%0A%0Avar%20getBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20if%20%28%21bookmarkJson%29%20%7B%0A%20%20%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28%7B%7D%29%29%3B%0A%20%20%20%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20%7D%0A%20%20return%20JSON.parse%28bookmarkJson%29%3B%0A%7D%3B%0A%0Avar%20setBookmarks%20%3D%20function%28bookmarks%29%20%7B%0A%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28bookmarks%29%29%3B%0A%7D%3B%0A%0Avar%20exportBookmarks%20%3D%20function%28%29%20%7B%0A%20%20alert%28JSON.stringify%28getBookmarks%28%29%29%29%3B%0A%7D%3B%0A%0Avar%20savePlace%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%0A%20%20bookmarks%5BgetThreadId%28%29%5D%20%3D%20%7Bplace%3A%20findFirstVisiblePost%28%29%2C%20name%3A%20getThreadName%28%29%7D%3B%0A%20%20%0A%20%20setBookmarks%28bookmarks%29%3B%0A%7D%3B%0A%0Avar%20showBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%20%20var%20doc%20%3D%20%22%3Cdiv%3E%5Cn%22%3B%0A%20%20for%20%28var%20thread%20in%20bookmarks%29%20%7B%0A%20%20%20%20if%20%28bookmarks.hasOwnProperty%28thread%29%29%20%7B%0A%20%20%20%20%20%20var%20threadSafe%20%3D%20htmlEntities%28thread%29%3B%0A%20%20%20%20%20%20var%20post%20%3D%20htmlEntities%28bookmarks%5Bthread%5D%5B%22place%22%5D%29%3B%0A%20%20%20%20%20%20var%20threadName%20%3D%20htmlEntities%28bookmarks%5Bthread%5D%5B%22name%22%5D%29%3B%0A%20%20%20%20%20%20doc%20%2B%3D%20%22%3Ca%20href%3D%27https%3A%2F%2Ftgchan.org%2Fkusaba%2Fquest%2Fres%2F%22%20%2B%20threadSafe%20%2B%20%22.html%23%22%20%2B%20post%20%2B%20%22%27%3Ehttps%3A%2F%2Ftgchan.org%2Fkusaba%2Fquest%2Fres%2F%22%20%2B%20threadSafe%20%2B%20%22.html%23%22%20%2B%20post%20%2B%20%22%3C%2Fa%3E%20-%20%22%20%2B%20threadName%20%2B%20%22%3Cbr%2F%3E%5Cn%22%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20doc%20%2B%3D%20%22%3Cbr%2F%3E%3Cbr%2F%3E%3C%2Fdiv%3E%22%3B%0A%0A%20%20var%20url%20%3D%20%22data%3Atext%2Fhtml%3Butf-8%2C%22%20%2B%20encodeURIComponent%28doc%29%3B%0A%20%20console.log%28url%29%3B%0A%20%20%2F%2Fwindow.open%28url%29%3B%0A%20%20var%20div%20%3D%20document.createElement%28%22div%22%29%3B%0A%20%20div.innerHTML%20%3D%20doc%3B%0A%20%20document.body.prepend%28div%29%3B%0A%7D%3B%0A%0AshowBookmarks%28%29%3B%0A%0A%7D%29%28%29%3B
>>
No. 29175 ID: e95cec

Export

javascript:%28function%28%29%7B%0A%2F%2F%20https%3A%2F%2Fcodegolf.stackexchange.com%2Fa%2F76801%0Avar%20hash%20%3D%20%28s%3D%3E%5B...s.replace%28%2F%5BA-Z%5D%2Fg%2Ca%3D%3E%28b%3Da.toLowerCase%28%29%29%2Bb%2Bb%29%5D.reduce%28%28a%2Cb%29%3D%3E%28a%3C%3C3%29%2A28-a%5Eb.charCodeAt%28%29%2C0%29%3C%3C8%3E%3E%3E8%29%3B%0A%0A%2F%2F%20https%3A%2F%2Fgomakethings.com%20kinda%0Avar%20isInViewport%20%3D%20function%20%28elem%29%20%7B%0A%20%20return%20%28elem.getBoundingClientRect%28%29.top%20%3E%3D%200%29%3B%0A%7D%3B%0A%0Avar%20findFirstVisiblePost%20%3D%20function%28%29%20%7B%0A%20%20var%20posts%20%3D%20document.querySelectorAll%28%27div.postwidth%20%3E%20label%20%3E%20input%27%29%3B%0A%20%20var%20firstVisible%20%3D%20null%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20posts.length%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20if%20%28isInViewport%28posts%5Bi%5D%29%29%20%7B%0A%20%20%20%20%20%20firstVisible%20%3D%20posts%5Bi%5D%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%20%28firstVisible%29%20%7B%0A%20%20%20%20return%20firstVisible.value%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20null%3B%0A%20%20%7D%0A%7D%3B%0A%0Avar%20getThreadId%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20input%22%29.value%3B%0A%7D%3B%0A%0Avar%20getThreadName%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20span%22%29.textContent.trim%28%29%3B%0A%7D%3B%0A%0Avar%20getBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20if%20%28%21bookmarkJson%29%20%7B%0A%20%20%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28%7B%7D%29%29%3B%0A%20%20%20%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20%7D%0A%20%20return%20JSON.parse%28bookmarkJson%29%3B%0A%7D%3B%0A%0Avar%20setBookmarks%20%3D%20function%28bookmarks%29%20%7B%0A%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28bookmarks%29%29%3B%0A%7D%3B%0A%0Avar%20exportBookmarks%20%3D%20function%28%29%20%7B%0A%20%20alert%28JSON.stringify%28getBookmarks%28%29%29%29%3B%0A%7D%3B%0A%0Avar%20savePlace%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%0A%20%20bookmarks%5BgetThreadId%28%29%5D%20%3D%20%7Bplace%3A%20findFirstVisiblePost%28%29%2C%20name%3A%20getThreadName%28%29%7D%3B%0A%20%20%0A%20%20setBookmarks%28bookmarks%29%3B%0A%7D%3B%0A%20%0Avar%20showBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%20%20%2F%2FTODO%0A%7D%3B%0A%0AexportBookmarks%28%29%3B%0A%0A%7D%29%28%29%3B
>>
No. 29176 ID: e95cec

Import

javascript:%28function%28%29%7B%0A%2F%2F%20https%3A%2F%2Fcodegolf.stackexchange.com%2Fa%2F76801%0Avar%20hash%20%3D%20%28s%3D%3E%5B...s.replace%28%2F%5BA-Z%5D%2Fg%2Ca%3D%3E%28b%3Da.toLowerCase%28%29%29%2Bb%2Bb%29%5D.reduce%28%28a%2Cb%29%3D%3E%28a%3C%3C3%29%2A28-a%5Eb.charCodeAt%28%29%2C0%29%3C%3C8%3E%3E%3E8%29%3B%0A%0A%2F%2F%20https%3A%2F%2Fstackoverflow.com%2Fa%2F14130005%2F513038%0Afunction%20htmlEntities%28str%29%20%7B%0A%20%20%20%20return%20String%28str%29.replace%28%2F%26%2Fg%2C%20%27%26amp%3B%27%29.replace%28%2F%3C%2Fg%2C%20%27%26lt%3B%27%29.replace%28%2F%3E%2Fg%2C%20%27%26gt%3B%27%29.replace%28%2F%22%2Fg%2C%20%27%26quot%3B%27%29%3B%0A%7D%0A%0A%2F%2F%20https%3A%2F%2Fgomakethings.com%20kinda%0Avar%20isInViewport%20%3D%20function%20%28elem%29%20%7B%0A%20%20return%20%28elem.getBoundingClientRect%28%29.top%20%3E%3D%200%29%3B%0A%7D%3B%0A%0Avar%20findFirstVisiblePost%20%3D%20function%28%29%20%7B%0A%20%20var%20posts%20%3D%20document.querySelectorAll%28%27div.postwidth%20%3E%20label%20%3E%20input%27%29%3B%0A%20%20var%20firstVisible%20%3D%20null%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20posts.length%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20if%20%28isInViewport%28posts%5Bi%5D%29%29%20%7B%0A%20%20%20%20%20%20firstVisible%20%3D%20posts%5Bi%5D%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%20%28firstVisible%29%20%7B%0A%20%20%20%20return%20firstVisible.value%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20null%3B%0A%20%20%7D%0A%7D%3B%0A%0Avar%20getThreadId%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20input%22%29.value%3B%0A%7D%3B%0A%0Avar%20getThreadName%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20span%22%29.textContent.trim%28%29%3B%0A%7D%3B%0A%0Avar%20getBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20if%20%28%21bookmarkJson%29%20%7B%0A%20%20%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28%7B%7D%29%29%3B%0A%20%20%20%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20%7D%0A%20%20return%20JSON.parse%28bookmarkJson%29%3B%0A%7D%3B%0A%0Avar%20setBookmarks%20%3D%20function%28bookmarks%29%20%7B%0A%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28bookmarks%29%29%3B%0A%7D%3B%0A%0Avar%20exportBookmarks%20%3D%20function%28%29%20%7B%0A%20%20alert%28JSON.stringify%28getBookmarks%28%29%29%29%3B%0A%7D%3B%0A%0Avar%20importBookmarks%20%3D%20function%28%29%20%7B%0A%20%20setBookmarks%28JSON.parse%28prompt%28%22Paste%20bookmark%20JSON%20here%3A%22%2C%20JSON.stringify%28getBookmarks%28%29%29%29%29%29%3B%0A%7D%3B%0A%0Avar%20savePlace%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%0A%20%20bookmarks%5BgetThreadId%28%29%5D%20%3D%20%7Bplace%3A%20findFirstVisiblePost%28%29%2C%20name%3A%20getThreadName%28%29%7D%3B%0A%20%20%0A%20%20setBookmarks%28bookmarks%29%3B%0A%7D%3B%0A%0Avar%20showBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%20%20var%20doc%20%3D%20%22%3Cdiv%3E%5Cn%22%3B%0A%20%20for%20%28var%20thread%20in%20bookmarks%29%20%7B%0A%20%20%20%20if%20%28bookmarks.hasOwnProperty%28thread%29%29%20%7B%0A%20%20%20%20%20%20var%20threadSafe%20%3D%20htmlEntities%28thread%29%3B%0A%20%20%20%20%20%20var%20post%20%3D%20htmlEntities%28bookmarks%5Bthread%5D%5B%22place%22%5D%29%3B%0A%20%20%20%20%20%20var%20threadName%20%3D%20htmlEntities%28bookmarks%5Bthread%5D%5B%22name%22%5D%29%3B%0A%20%20%20%20%20%20doc%20%2B%3D%20%22%3Ca%20href%3D%27https%3A%2F%2Ftgchan.org%2Fkusaba%2Fquest%2Fres%2F%22%20%2B%20threadSafe%20%2B%20%22.html%23%22%20%2B%20post%20%2B%20%22%27%3Ehttps%3A%2F%2Ftgchan.org%2Fkusaba%2Fquest%2Fres%2F%22%20%2B%20threadSafe%20%2B%20%22.html%23%22%20%2B%20post%20%2B%20%22%3C%2Fa%3E%20-%20%22%20%2B%20threadName%20%2B%20%22%3Cbr%2F%3E%5Cn%22%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20doc%20%2B%3D%20%22%3Cbr%2F%3E%3Cbr%2F%3E%3C%2Fdiv%3E%22%3B%0A%0A%20%20var%20url%20%3D%20%22data%3Atext%2Fhtml%3Butf-8%2C%22%20%2B%20encodeURIComponent%28doc%29%3B%0A%20%20console.log%28url%29%3B%0A%20%20%2F%2Fwindow.open%28url%29%3B%0A%20%20var%20div%20%3D%20document.createElement%28%22div%22%29%3B%0A%20%20div.innerHTML%20%3D%20doc%3B%0A%20%20document.body.prepend%28div%29%3B%0A%7D%3B%0A%0AimportBookmarks%28%29%3B%0A%0A%7D%29%28%29%3B
>>
No. 29177 ID: e95cec

Oh, and to reiterate more clearly: to use these, copy the block of text beginning "javascript:" and create a browser bookmark with that for the location. Title it "load" or whatever, as appropriate.
>>
No. 29180 ID: b1b4f3

You can also just... bookmark the shortcut that points to a specific post.
like: https://tgchan.org/kusaba/meep/res/29172.html#29173 for the first reply in this thread.

You can get that link by clicking the "No." next to the post ID. Clicking the post ID just inserts a post reference in your reply.
>>
No. 29181 ID: e95cec

>>29180
Oh, well sure, but that's a pain to keep updated. You'd either have an ever-expanding list of bookmarks, or you'd have to manually delete the old one when you made it through a few pages of posts. This way you can just click one button to save your progress on whatever thread you're on.
>>
No. 29182 ID: e95cec

Wait, there's a bug in Import that erases your bookmarks if you hit cancel. XP Here's the corrected Import:

javascript:%28function%28%29%7B%0A%2F%2F%20https%3A%2F%2Fcodegolf.stackexchange.com%2Fa%2F76801%0Avar%20hash%20%3D%20%28s%3D%3E%5B...s.replace%28%2F%5BA-Z%5D%2Fg%2Ca%3D%3E%28b%3Da.toLowerCase%28%29%29%2Bb%2Bb%29%5D.reduce%28%28a%2Cb%29%3D%3E%28a%3C%3C3%29%2A28-a%5Eb.charCodeAt%28%29%2C0%29%3C%3C8%3E%3E%3E8%29%3B%0A%0A%2F%2F%20https%3A%2F%2Fstackoverflow.com%2Fa%2F14130005%2F513038%0Afunction%20htmlEntities%28str%29%20%7B%0A%20%20%20%20return%20String%28str%29.replace%28%2F%26%2Fg%2C%20%27%26amp%3B%27%29.replace%28%2F%3C%2Fg%2C%20%27%26lt%3B%27%29.replace%28%2F%3E%2Fg%2C%20%27%26gt%3B%27%29.replace%28%2F%22%2Fg%2C%20%27%26quot%3B%27%29%3B%0A%7D%0A%0A%2F%2F%20https%3A%2F%2Fgomakethings.com%20kinda%0Avar%20isInViewport%20%3D%20function%20%28elem%29%20%7B%0A%20%20return%20%28elem.getBoundingClientRect%28%29.top%20%3E%3D%200%29%3B%0A%7D%3B%0A%0Avar%20findFirstVisiblePost%20%3D%20function%28%29%20%7B%0A%20%20var%20posts%20%3D%20document.querySelectorAll%28%27div.postwidth%20%3E%20label%20%3E%20input%27%29%3B%0A%20%20var%20firstVisible%20%3D%20null%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20posts.length%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20if%20%28isInViewport%28posts%5Bi%5D%29%29%20%7B%0A%20%20%20%20%20%20firstVisible%20%3D%20posts%5Bi%5D%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%20%28firstVisible%29%20%7B%0A%20%20%20%20return%20firstVisible.value%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20null%3B%0A%20%20%7D%0A%7D%3B%0A%0Avar%20getThreadId%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20input%22%29.value%3B%0A%7D%3B%0A%0Avar%20getThreadName%20%3D%20function%28%29%20%7B%0A%20%20return%20document.querySelector%28%22form%20%3E%20div.postwidth%20%3E%20label%20%3E%20span%22%29.textContent.trim%28%29%3B%0A%7D%3B%0A%0Avar%20getBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20if%20%28%21bookmarkJson%29%20%7B%0A%20%20%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28%7B%7D%29%29%3B%0A%20%20%20%20bookmarkJson%20%3D%20localStorage.getItem%28%22tgchan%20bookmarks%22%29%3B%0A%20%20%7D%0A%20%20return%20JSON.parse%28bookmarkJson%29%3B%0A%7D%3B%0A%0Avar%20setBookmarks%20%3D%20function%28bookmarks%29%20%7B%0A%20%20localStorage.setItem%28%22tgchan%20bookmarks%22%2C%20JSON.stringify%28bookmarks%29%29%3B%0A%7D%3B%0A%0Avar%20exportBookmarks%20%3D%20function%28%29%20%7B%0A%20%20alert%28JSON.stringify%28getBookmarks%28%29%29%29%3B%0A%7D%3B%0A%0Avar%20importBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20i%20%3D%20prompt%28%22Paste%20bookmark%20JSON%20here%3A%22%2C%20JSON.stringify%28getBookmarks%28%29%29%29%3B%0A%20%20if%20%28i%29%20%7B%0A%20%20%20%20setBookmarks%28JSON.parse%28i%29%29%3B%0A%20%20%7D%0A%7D%3B%0A%0Avar%20savePlace%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%0A%20%20bookmarks%5BgetThreadId%28%29%5D%20%3D%20%7Bplace%3A%20findFirstVisiblePost%28%29%2C%20name%3A%20getThreadName%28%29%7D%3B%0A%20%20%0A%20%20setBookmarks%28bookmarks%29%3B%0A%7D%3B%0A%0Avar%20showBookmarks%20%3D%20function%28%29%20%7B%0A%20%20var%20bookmarks%20%3D%20getBookmarks%28%29%3B%0A%20%20var%20doc%20%3D%20%22%3Cdiv%3E%5Cn%22%3B%0A%20%20for%20%28var%20thread%20in%20bookmarks%29%20%7B%0A%20%20%20%20if%20%28bookmarks.hasOwnProperty%28thread%29%29%20%7B%0A%20%20%20%20%20%20var%20threadSafe%20%3D%20htmlEntities%28thread%29%3B%0A%20%20%20%20%20%20var%20post%20%3D%20htmlEntities%28bookmarks%5Bthread%5D%5B%22place%22%5D%29%3B%0A%20%20%20%20%20%20var%20threadName%20%3D%20htmlEntities%28bookmarks%5Bthread%5D%5B%22name%22%5D%29%3B%0A%20%20%20%20%20%20doc%20%2B%3D%20%22%3Ca%20href%3D%27https%3A%2F%2Ftgchan.org%2Fkusaba%2Fquest%2Fres%2F%22%20%2B%20threadSafe%20%2B%20%22.html%23%22%20%2B%20post%20%2B%20%22%27%3Ehttps%3A%2F%2Ftgchan.org%2Fkusaba%2Fquest%2Fres%2F%22%20%2B%20threadSafe%20%2B%20%22.html%23%22%20%2B%20post%20%2B%20%22%3C%2Fa%3E%20-%20%22%20%2B%20threadName%20%2B%20%22%3Cbr%2F%3E%5Cn%22%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20doc%20%2B%3D%20%22%3Cbr%2F%3E%3Cbr%2F%3E%3C%2Fdiv%3E%22%3B%0A%0A%20%20var%20url%20%3D%20%22data%3Atext%2Fhtml%3Butf-8%2C%22%20%2B%20encodeURIComponent%28doc%29%3B%0A%20%20console.log%28url%29%3B%0A%20%20%2F%2Fwindow.open%28url%29%3B%0A%20%20var%20div%20%3D%20document.createElement%28%22div%22%29%3B%0A%20%20div.innerHTML%20%3D%20doc%3B%0A%20%20document.body.prepend%28div%29%3B%0A%7D%3B%0A%0AimportBookmarks%28%29%3B%0A%0A%7D%29%28%29%3B
>>
No. 29196 ID: 17c2ee

Commenting to push absurdly long posts off of the page so mobile no longer has to suffer
>>
No. 29197 ID: 17c2ee

Commenting to push absurdly long posts off of the page so mobile no longer has to suffer
>>
No. 29198 ID: 17c2ee

Commenting to push absurdly long posts off of the page so mobile no longer has to suffer
>>
No. 29199 ID: 17c2ee

Commenting to push absurdly long posts off of the page so mobile no longer has to suffer
>>
No. 29200 ID: 17c2ee

Commenting to push absurdly long posts off of the page so mobile no longer has to suffer
>>
No. 29206 ID: 080aaf

>>29200
Honestly? Thank you. That was annoying on mobile.
>>
No. 29262 ID: e95cec

>>29206
Ah, sorry about that.
>>
No. 29267 ID: a07f4e

Please leave, phoneposters.
[Return] [Entire Thread] [Last 50 posts] [Last 100 posts]

Delete post []
Password  
Report post
Reason