I like tweeting about pages I read in the following format:
"Headline"
Most "share this" buttons add a lot of cruft and if there is none, it is annoying having to copy the text first and then the URL into Twitter.
With this bookmarklet, you can highlight some text, click the bookmarklet and get a tweet window in a new tab:
javascript:(function(){
n=getSelection().anchorNode;
t=n.nodeType===3?n.data:n.innerText;t='“'+t+'”\\n\\n';
window.open(`https://twitter.com/intent/tweet?
text=${encodeURIComponent(t)}${document.location.href}`)
})()
Explanation:
- We wrap the whole thing in an IIFE to avoid the browser redirecting to "javascript://"
- We get the
anchorNode
of the currentSelection
object - We check the type. If it's a text node, we read the
data
, if it is HTML, we get theinnerText
- We open a window (which these days results in a new tab) and call the Twitter intend with the text followed by two linebreaks and the URL of the document.
That's it.
Here's the minified version to add to your bookmarks:
javascript:(function(){n=getSelection().anchorNode;t=n.nodeType===3?n.data:n.innerText;t='“'+t+'”\\n\\n';window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(t)}${document.location.href}`)})()
Copy this, go to your bookmarks toolbar (change in view if it isn't visible), and set the location as the code above:
Alternatively, go to the post on my blog (as dev.to disallows javascript: links) and drag the "tweet this" link to your toolbar.
Voilà, happy tweeting.