Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Bookmarklet
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == Steve Kangas of bookmarklets.com coined the word ''bookmarklet''<ref name="bookmarklets.com">{{cite web |url=http://www.bookmarklets.com |title=Bookmarklets |archive-url=https://web.archive.org/web/20090707090113/http://www.bookmarklets.com/ |archive-date=2009-07-07 |url-status=live}} registered 9 April 1998</ref> when he started to create short scripts based on a suggestion in [[Netscape Communications Corporation|Netscape]]'s JavaScript guide.<ref>{{cite web|title=Activating JavaScript Commands From the Personal Toolbar|url=http://developer.netscape.com/docs/manuals/communicator/jsguide/misc.htm#1005712|work=What's New in JavaScript 1.2|publisher=Netscape Communications Corporation|archive-url=https://web.archive.org/web/20020611183734/http://developer.netscape.com/docs/manuals/communicator/jsguide/misc.htm#1005712|archive-date=2002-06-11 <!-- 183734 --> |year=1997}}</ref> Before that, [[Tantek Γelik]] called these scripts ''favelets'' and used that word as early as on 6 September 2001 (personal email{{clarify|date=April 2020}}). [[Brendan Eich]], who developed JavaScript at Netscape, gave this account of the origin of bookmarklets: {{quote|They were a deliberate feature in this sense: I invented the <code>javascript:</code> URL along with JavaScript in 1995, and intended that <code>javascript:</code> URLs could be used as any other kind of URL, including being bookmark-able. In particular, I made it possible to generate a new document by loading, e.g. <code>javascript:'hello, world'</code>, but also (key for bookmarklets) to run arbitrary script against the [[Document Object Model|DOM]] of the current document, e.g. <code>javascript:alert(document.links[0].href)</code>. The difference is that the latter kind of URL uses an expression that evaluates to the undefined type in JS. I added the void operator to JS before Netscape 2 shipped to make it easy to discard any non-undefined value in a <code>javascript:</code> URL.|Brendan Eich|3=in an email to [[Simon Willison]]<ref>{{cite web |url=http://www.sitepoint.com/bookmarklets/#comment-1146713851 |title=Email from Brendan Eich |publisher=[[SitePoint]] |last=Willison |first=Simon |date=April 10, 2004 |access-date=September 26, 2014}}</ref>}} The increased implementation of [[Content Security Policy]] (CSP) in websites has caused problems with bookmarklet execution and usage (2013β2015),<ref>{{cite web|title=Bug 866522 - Bookmarklets affected by CSP|url=https://bugzilla.mozilla.org/show_bug.cgi?id=866522}}</ref> with some suggesting that this hails the end or death of bookmarklets.<ref>{{cite web|title=Bookmarklets are Dead|date=23 October 2014|url=https://medium.com/making-instapaper/bookmarklets-are-dead-d470d4bbb626}}</ref><ref>{{cite web|title=The Slow Death of Bookmarklets|date=16 November 2012|url=http://www.codeproject.com/Articles/494559/The-Slow-Death-of-Bookmarklets}}</ref> William Donnelly created a work-around solution for this problem (in the specific instance of loading, referencing and using JavaScript library code) in early 2015 using a [[Greasemonkey]] userscript ([[Firefox]] / [[Pale Moon (web browser)|Pale Moon]] browser add-on extension) and a simple bookmarklet-userscript [[communication protocol]].<ref>{{cite web|title=The Resurrection of Bookmarklets|url=http://www.donnelly-house.net/programming/js/bookmarklets/bookmarklets.php}}</ref> It allows (library-based) bookmarklets to be executed on any and all websites, including those using CSP and having an https:// URI scheme. However, if/when browsers support disabling/disallowing inline script execution using CSP, and if/when websites begin to implement that feature, it will "break" this "fix".
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)