Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove all target="_blank" from links

I'm messing around with jQuery and ran in to a problem I can't seem to solve. I know it's possible with jQuery, but can't find a proper example to work off of. I have a page with a couple regular links with the attribute/value target="_blank" added to it.

What's the best approach with jQuery/JavaScript to remove that value from every link on the page?

like image 869
Dustin Avatar asked Apr 11 '12 01:04

Dustin


People also ask

What happens if you add target _blank to a link?

target="_blank" is a special keyword that will open links in a new tab every time. target="blank" will open the first-clicked link in a new tab, but any future links that share target="blank" will open in that same newly-opened tab.

Is Target _blank unsafe?

When you link to a page on another site using the target="_blank" attribute, you can expose your site to performance and security issues: The other page may run on the same process as your page. If the other page is running a lot of JavaScript, your page's performance may suffer.

Why target _blank is deprecated?

There's A Security Reason For Not Using _BlankThe target=”_blank” link attribute is risky and opens a website to security and performance issues. Google's Web. dev page on the risks of using the _blank link attribute is summarized as such: “The other page may run on the same process as your page.

What is target _blank in a href?

A target attribute with the value of “_blank” opens the linked document in a new window or tab.


1 Answers

This should do it with jQuery...

$('a[target="_blank"]').removeAttr('target');

With a modern browser...

Array.from(document.querySelectorAll('a[target="_blank"]'))
  .forEach(link => link.removeAttribute('target'));

With an older browser such as earlier IEs...

var links = document.links, i, length;

for (i = 0, length = links.length; i < length; i++) {
    links[i].target == '_blank' && links[i].removeAttribute('target');
}
like image 72
alex Avatar answered Sep 17 '22 10:09

alex