

I Believe in the Middle Click - hdragomir
http://horia.me/the-middle-click

======
iwwr
I hate javascript links that can't be opened in new tabs.

~~~
ionfish
One of the strange things I've always found in Safari is that while some sites
break Cmd+click (to open in a new tab), if you use the menu (right click >
Open Link in New Tab) then that will work just fine.

~~~
jacobolus
The site is intercepting the click event, whether ⌘ is held down or not, but
not right click (and maybe also not ⌃ click). When you ⌘-click, the “open in a
new tab” behavior never fires, but when you choose the menu option, it does.

It’s annoying, but not inexplicable.

~~~
chc
The codepath for right-click and control-click is the same unless you go
pretty far out of your way to discriminate — that's why both methods of
opening the contextual menu work.

~~~
moeffju
This is about CMD-Click, not CTRL-Click. CMD-Click sends a 'click' event to
the page, since it counts as "left (primary mouse button) click", not "right
click".

~~~
chc
I was responding to jacobolus, who noted that many sites intercept clicks,
"but not right click (and maybe also not ⌃ click)" (on the Mac, "⌃" is the
symbol for the control key). I was explaining that those are pretty much the
same thing from the program's point of view, so code that allows right-click
will almost certainly also allow control-click.

~~~
jacobolus
This is incorrect. In Safari at least, if you attach a handler to the
mousedown event, your handler will fire for both ⌃-click and right click, but
the two events will be different.

In the former case, you have event.button = 0, and event.ctrlKey = true. In
the second case, you have event.button = 2, and event.ctrlKey = false.

What happens depends on the logic inside the handler.

On the other hand, if you attach a handler to the click event, it doesn't seem
to fire for either right click or ⌃-click.

------
TomasSedovic
I love and use this idea, but the OP missed the Shift key. At least Firefox
and Chromium use Shift+click to open the link in a new window and I'm pretty
sure IE does that as well but I can't test that now.

This is what I use:

    
    
      $('.some-snazzy-selector').click(function(ev){
        if( ev.which == 2 || ev.metaKey || ev.ctrlKey || ev.shiftKey ) return true;
        e.preventDefault();
    
        /* Awesome AJAX code goes here */
      });
    

I posted this comment on the blog, but it may reach someone else here, too.

~~~
hdragomir
Yep, thank you. Post updated.

------
marcusEting
I believed in the middle click, too, and lots of other special clicks... until
I switched to a MBP. The I customized the touchpad using the Better Touch Tool
and I haven't looked back since! :)

------
hammock
I use FF extension called DblClicker which lets me double-click a link into a
new tab. It also closes (or duplicates) open tabs with a double-click.

Started using this when the middle-click on my mouse broke from too much use.

------
pavel_lishin
I have never run into this problem, and didn't see anyplace where Delicious
does this... is it really that common? (Aside from the middle-click-js-link-
and-weep thing?)

~~~
hdragomir
Delicious seem to have gone back to the original behavior: Middle Click opens
a new tab.

But, generally speaking, developers don't really take this into account.

~~~
pavel_lishin
Small pond over here, but I don't know any developers who specifically
override the middle-click functionality - though the javascript link is
something even I've done.

~~~
hdragomir
You don't specifically override the middle click. It happens when you override
the click behavior -- middle click is included in that because it's still a
click event, but with a slight difference in the event object being created.
:-)

------
mauriciob
So many apps and sites lack this "feature". Because of that, now I need to
call it what it isn't.

------
yuvadam
Thank god for Greasemonkey.

~~~
hdragomir
I know, but you can't Greasemonkey everything, eh?

I do that too, for what I visit regularly and presents said problem... but it
can sometimes hit unexpectedly.

