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 sho
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();
});
CSS:
a{
color: blue;
cursor: pointer;
text-decoration: underline;
}
Script:
var links = document.getElementsByTagName("a");
for(var i=0; i < links.length; i++){
links[i].setAttribute("data-href", links[i].getAttribute("href"));
links[i].removeAttribute("href");
links[i].onclick = function(){
window.location = this.getAttribute("data-href");
};
}
You'd probably want to use some JavaScript to load the new contents into the existing page. But that will mean that your site will not have any history (unless you add it in manually), so it will break navigation, and then there's no guarantee that the user will just copy and paste the URL into a new window or tab anyway.
In essence if you need to disable a fundamental Operating System (yes, for websites the Browser is the Operating System) action then you're doing something wrong. (In your design or intended behaviour.)
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:
<input type="hidden" .../>
elements. (And this requires that the query strings be of the type that can be constructed by an HTML form.)