Установите все цели ссылки для страницы - PullRequest
3 голосов
/ 14 мая 2010

У меня есть ссылки, которые генерируются динамически, и мне нужно установить цель для всех из них. Как я мог сделать это с помощью javaScript. Я нашел то, что выглядит так, как будто оно должно работать с использованием jQuery ..

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

но я не хочу использовать библиотеку для этого, и я думаю, что пара строк javaScript позаботится об этом ... Я просто не знаю, как это написать.

Для дальнейшего разъяснения того, что я делаю, ссылки создаются с помощью javaScript и механизма рекомендаций ATG, и я называю это в iframe, который мне нужен, чтобы вырваться наверх. Я думаю, что мне нужен только способ определить все ссылки в DOM, его не нужно привязывать к определенному идентификатору. Можно ли прикрепить динамически сгенерированный атрибут к динамически сгенерированной ссылке? Существует возможность создания собственного рендера, но я надеюсь избежать этого маршрута.

Ответы [ 3 ]

3 голосов
/ 14 мая 2010

как то так

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

for (var i = 0; i < anchorElements.length; i ++)
{
  anchorElements[i].setAttribute("target", "_top");
}
2 голосов
/ 14 мая 2010

Обычно я сам человек jQuery, но вы правы, что такой маленький кусочек кода не должен зависеть от библиотеки. Я могу быть немного ржавым с моим JavaScript без jQuery, но я думаю, что это должно сделать это ...

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

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

В этом примере предполагается, что вы выбрали селектор jQuery. Если вы не хотите использовать целевой элемент с атрибутом id, просто удалите метод getElementById().

1 голос
/ 14 мая 2010

Ну, я нашел решение. Извините, мне следовало больше поискать здесь, прежде чем спрашивать.

как к форсу-канальному из-фрейма, чтобы быть открыто-в-родительского-окна

Для меня сработало использование объекта

<base target="_top" />
...