Reputation: 313
I want to open link in new tab with middle mouse button, but I find out that event.preventDefault()
stops middle-click from opening a new tab.
I have to use event.preventDefault()
because my link is used for trigger a lightbox, but I want user to be able to open this link in new tab with middle mouse button too, how can I do that?
Demo
document.getElementById("test").addEventListener("click", function(e) {
e.preventDefault();
});
<a id="test" target="_blank" href="//jsbin.com/wemowe">Click</a>
Upvotes: 0
Views: 456
Reputation: 318302
You can make it conditional so it doesn't prevent the middle mouse button, which is 2
document.getElementById("test").addEventListener("click", function(e) {
if ( e.which !== 2 )
e.preventDefault();
});
A somewhat more cross browser solution supporting older IE as well would be
document.getElementById("test").addEventListener("click", function(e) {
var evt = (e == null ? event : e), prevented = true;
if (evt.which) {
if (evt.which == 2) prevented = false;
} else if (evt.button) {
if (evt.button == 4) prevented = false;
}
if (prevented) evt.preventDefault();
});
Upvotes: 1