4

I have links that are dynamically generated and I need to set the target for all of them. How could I do this with javaScript. I found something that looks like it should work using jQuery..

$("a").attr('target', '_top');

but I dont want to use a library for this and I imagine a couple of lines of javaScript would take care of it... I just dont know how to write it.

To further clarify what I am doing, the links are being generated with javaScript and a recommendation engine, ATG, and I am calling this in an iframe that I need to break out of to the top. I guess what I need is just a way to define all the links in the DOM, it does not have to be attached to a particular id. Is it possible to attach a dynamically generated attribute to a dynamically generated link? There is the possibility of building a custom render but I hope to avoid that route.

Zac
  • 12,637
  • 21
  • 74
  • 122

3 Answers3

3

Something like this

var anchorElements = document.getElementsByTagName("a");

for (var i = 0; i < anchorElements.length; i ++)
{
  anchorElements[i].setAttribute("target", "_top");
}
John Hartsock
  • 85,422
  • 23
  • 131
  • 146
2

I'm usually a jQuery man myself, but you are correct that such a small piece of code should not be library dependent. I may be a little rusty with my JavaScript without jQuery, but I think this should do it...

var anchors = document.getElementById('myDiv').getElementsByTagName('a');

for (var i = 0; i < anchors.length; i++) {
    anchors[i].setAttribute('target', '_top');
}

This example assumes the jQuery selector you used is what you want to select. If you don't want to target a specific element with an id attribute, simply drop the getElementById() method.

alex
  • 479,566
  • 201
  • 878
  • 984
  • Thanks this looks like it should work however it does not in my situation ... I edited my post to describe better. – Zac May 14 '10 at 03:44
1

Well I found the solution. Sorry I should have done more searching here before asking.

how-to-force-link-from-iframe-to-be-opened-in-the-parent-window

What worked for me was to use the object

<base target="_top" />
Community
  • 1
  • 1
Zac
  • 12,637
  • 21
  • 74
  • 122