
Implementing bookmarklets in JavaScript - jschuur
http://www.2ality.com/2011/06/implementing-bookmarklets.html
======
dave1010uk
One of the best things about bookmarklets is that they work on mobiles too.

There's a great collection of bookmarklets at
<https://www.squarefree.com/bookmarklets/> (Fron the same guy who tracks
changes in Firefox's nightly builds: <http://www.squarefree.com/burningedge/>
)

You can also turn bookmarklets into GreaseMonkey scripts so they can be ran
automatically on certain sites (in Firefox):
[http://www.squarefree.com/2005/05/16/bookmarklets-to-user-
sc...](http://www.squarefree.com/2005/05/16/bookmarklets-to-user-scripts/)

~~~
pasbesoin
I continue to use a number of (sometimes modified) bookmarklets from
squarefree. They are also useful in skirting restrictions in environments
where you are "not supposed to install stuff" (but where concerns are not so
severe as to prevent execution of Javascript with which you are familiar).

It's also nice to be able to do the same things in an arbitrary set of
browsers (for the most part).

------
thedevelopment
Bookmarklets are awesome except they involve more user interaction than should
be needed. I feel like almost every time I could use a bookmarklet, a plugin
would do more with just as much user initiative.

They also don't have a favicon (or I haven't seen one in FF4) without a user
pre-visiting a destination page, so they look unpolished.

~~~
jschuur
Bookmarklets are cross platform across practically any browser and work in
mobile devices too. Can't say the same for plugins.

Plus it's easier for some developers to knock out a bookmarklet than a plugin,
especially when you can do much of the logic server side, and potentially hook
into existing code there.

------
peteretep
I like: [http://betterexplained.com/articles/how-to-make-a-
bookmarkle...](http://betterexplained.com/articles/how-to-make-a-bookmarklet-
for-your-web-application/)

as a reference

------
catshirt
this is ok- and even shows you how to do async loads. an article targeting
more comprehensive bookmarklets might recommend your bookmarklet should _only_
load an external script. additionally, some discussion of postmessage would be
cool. you can actually create insanely robust bookmarklets posting messages
(and using views) through an iframe(s).

~~~
tremendo
I see you use the (function() {…})(); syntax in your gist, while the linked
article uses (function() {…}()); I tried some simple experiment, even passing
a param in the outer parens, and both seemed to work the same, and ok. Is one
of these "right" and the other one "wrong"?

~~~
dave1010uk
The former give the following message in <http://jslint.com>

    
    
      Problem at line 1 character 17: Move the invocation into the parens that contain the function.
    

Crockford seems to prefer the latter but I don't know why.

~~~
rauschma
This is purely a matter of taste. You only need the parens to tell JavaScript
that it is a function expression and not a function declaration (a statement).
The outer parens make an IIFE look even more block-like to me, which is why I
use it. Any other prefix that tells JS that the IIFE is an expression is OK,
too. For example:

    
    
        +function() { console.log("bla") }();
    

But: this one converts the result to a number, which you don’t want if you
need the result of the IIFE. On the other hand, in places where you need that,
there is usually no ambiguity with statements, anyway, and you don’t need any
kind of prefix.

    
    
        var abc = function() { return "abc" }();

------
abava
yet another collection (great, of course :) - <http://linkstore.ru/book/index-
en.jsp>

------
diamondhead
<http://getfirebug.com/firebuglite#Stable>

