November 7th, 2024

Ask HN: What bookmarklets do you use?

A user developed a bookmarklet for sending web pages to a private subreddit and shared a tool called "kill-sticky" that removes fixed elements from pages, improving browsing experience.

Ask HN: What bookmarklets do you use?

A user has created a bookmarklet that allows them to send web pages to a personal, private subreddit, which they have found very useful. They also expressed their appreciation for another tool called "kill-sticky." The user shared a link to the GitHub repository for "kill-sticky," which is a JavaScript code snippet designed to remove fixed and sticky elements from a webpage, enhancing the browsing experience by making content more accessible. Additionally, they provided a simple JavaScript bookmarklet that can be modified to submit the current page URL to a specified subreddit. This bookmarklet encodes the current page's URL and opens a submission page on Reddit for the user to share the link.

- A bookmarklet has been created to send pages to a private subreddit.

- The "kill-sticky" tool removes fixed and sticky elements from web pages.

- Users can modify the provided JavaScript code to submit URLs to different subreddits.

- The tools aim to enhance user experience while browsing and sharing content online.

Link Icon 8 comments
By @al_borland - 5 months
I made a basic one for Kagi’s summarizer service.

javascript:(function()%7Bwindow.location.href%20%3D%20%60https%3A%2F%2Fkagi.com%2Fsummarizer%2Findex.html%3Ftarget_language%3D%26summary%3Dtakeaway%26url%3D%24%7BencodeURIComponent(window.location.href)%7D%60%7D)()

I have it in my todos to make some for their other offerings, like the new translations service they just released.

This one is very niche, but I was getting 100% in Tears of the Kingdom and the map didn’t tell me how many Koroks (or whatever else) I had left. So I threw this one together to tell me. It just counts the elements of a certain type and displays an alert with the number.

javascript:(function()%7Bfunction%20countTitles(title)%20%7Bconst%20elementsWithTitle%20%3D%20document.querySelectorAll(%60%5Btitle%3D%22%24%7Btitle%7D%22%5D%60)%3Bconst%20count%20%3D%20elementsWithTitle.length%3Breturn%20count%3B%7Dalert(countTitles(%22Korok%20Seed%22)%20%2B%20(countTitles(%22Korok%20Seed%20x2%22)*2))%7D)()

By @wruza - 5 months
Show all images on the page in a grid with size and megapixel tags. Useful for manual scraping.

Dereferer current tab in a new tab. Some sites refuse to be referred from search/etc but copy-pasting an url into a new tab works.

Various “save” bms. Picks up a resource and opens it in new tab for a specific site that disallows right-click or hides an image in css bg, etc.

“Video”. Turns yt short into normal video (short id is regular video id).

It’s a shame that bookmarklets can’t refer to a file and require this %%% inlining. Probably solvable with tampermonkey, but not worth the research.

By @gabrielsroka - 5 months
This seems to work as well:

  javascript:open('https://old.reddit.com/r/xyz/submit?url=' + encodeURIComponent(location.href))
Notes:

1. u don't have to use `window.`, window is the default object (maybe less readable, but folks don't use window.fetch either)

2. using an IIFE is sometimes useful and necessary, but this is a simple bookmarklet

3. as i wrote in the other comment, u don't need to encode it, and if u did, you could use encodeURIComponent to do it for you. ie, show the plain code here and let someone encode it if necessary (but i've never encoded mine)

I've posted several bookmarklets here: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...

By @mattcanhack - 5 months
For archiving a page:

  javascript:void(window.open('https://web.archive.org/save/'+location.href));
Should probably encode the href but it has worked so far
By @justtinker - 5 months
I have used variations of password revel bookmarklets. I keep searching for new one when I need them again. Most recent find was.

https://gist.github.com/robbiet480/4711696

By @ashconnor - 5 months
Add all Amex offers:

    javascript: var index,offerButtons=Array.from(document.getElementsByClassName("offer-cta")).filter(a=>"Add to Card"==a.title);for(index=0;index<offerButtons.length;++index)console.log("Clicking offer button"),offerButtons[index].click(),(async()=>{await new Promise(a=>setTimeout(a,2e3))})();
Force paste (works sometimes)

    javascript:forceBrowserDefault=(e=>{e.stopImmediatePropagation();return true;});['copy','cut','paste'].forEach(e=>document.addEventListener(e,forceBrowserDefault,true));
Facebook Marketplace delete all sold

    javascript:(async()=>{var e,l,a=Array.from(document.getElementsByClassName("x193iq5w")).filter(e=>"Sold"==e.innerHTML);for(let i=0;i<a.length;++i)console.log("Clicking Sold Listing"),a[i].click(),await new Promise(e=>setTimeout(e,3e3)),document.querySelector('[aria-label="Save"]').click(),await new Promise(e=>setTimeout(e,1e3)),document.querySelector('[aria-label="Close"]').click(),await new Promise(e=>setTimeout(e,2e3));location.reload()})();
I should really convert these to Tampermonkey scripts
By @runjake - 5 months
Fetch the latest version of an unpaywalled article with archive.ph:

  javascript:location.href = '//archive.ph/newest/' + location.href.split('?')[0];