Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable Opening New Window or New Tab by holding down on a link

I want to thanks those who are currently reading this and for your time. Let's go straight to the topic!

I am currently trying to disable a feature where a user should not be able to open a link to a new window or tab by holding down on a link.

Any suggestions or answers to approach this problem is appreciated, Thanks again!

like image 792
Tyrone Kam Avatar asked Jan 18 '23 11:01

Tyrone Kam


2 Answers

You could bind an event handler to the desired link element and use jQuery's .preventDefault() method to cancel the link going anywhere. Your code would look something like this:

$('a').click(function(event){
  event.preventDefault();
});
like image 151
jasonmerino Avatar answered Feb 17 '23 07:02

jasonmerino


If you need to prevent the user from opening links in a separate tab or window, then there's probably something wrong with your site design. Why do you feel that this restriction is necessary?

But to answer your question -- one way to more or less guarantee this, without depending on JavaScript and/or browser quirks, and without breaking too many any other important browser features, is to have each "link" actually be a form-button: <form method="GET" action="http://example.com/..."><input type="submit" value="click here for more information" class="pseudo-link-input" /></form>, with lots of CSS styling to make the button look like a link.

Caveats:

  • This is a really mean thing to do to your users!
  • If any of your links are to pages with query strings, then you'll have to translate those query strings into <input type="hidden" .../> elements. (And this requires that the query strings be of the type that can be constructed by an HTML form.)
  • Technically a browser could give users to the option to open a given form result in a new window, but in practice I don't know of any that do.
    • Of course, once they've clicked the link, and the pages are in their history, they can visit the URL in whatever tab/window they want. Some browsers, such as Firefox, even let users open "Back" or "Forward" in a new tab, so this wouldn't be a lot of effort.
  • At least in some browsers, this will also prevent users from selecting and copying the text of a link. If they copy the text of the page, all the link text is liable to silently vanish.
  • And it will probably cause various other problems as well. (Hacking around basic browser features is never a good idea.) The above caveats are just the first ones that came to mind.
like image 33
ruakh Avatar answered Feb 17 '23 07:02

ruakh