Событие клика iframe для изменения местоположения / URL (между доменами, но имеет контроль над обоими доменами) - PullRequest
0 голосов
/ 25 февраля 2011

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

Кампании находятся на отдельном домене (но у меня есть доступ к обоим).

Кампании переносятся на основной сайт с помощью iframe, и каждый iframe будет содержать главное меню сайтов (оно доставляется на сайт кампании через прокси-сервер).

Что мне нужно, так это то, что если щелкнуть ссылку в главной навигации, фактическое местоположение браузера изменится, а не просто iframe. Таким образом, URL-адрес браузера изменяется, и пользователь фактически покидает страницу с iframe.

Мне известна одна и та же политика происхождения, поэтому у меня так много проблем - НО, поскольку я контролирую оба и могу изменять сценарии для каждого, я полагаю, должен быть способ обойти это?

Я пробовал что-то вроде

    $(function(){
    $('#menu a').click(function(){
        var linkLocation = $(this).attr('href');
        //parent.location.href=linkLocation
        parent.location.replace(linkLocation)
        return false;
    });
});

но, похоже, он не работает вне зависимости от домена, на котором он размещен. Любые указатели / справки / предложения приветствуются.

Andy

1 Ответ

1 голос
/ 25 февраля 2011

Разве это не должно быть window.parent, а не просто parent?Изнутри фрейма вы сможете сделать window.parent.location = linkLocation;

Редактировать: У вас также есть возможность сделать

var links = document.getElementsByTagName('a');
for (var i=0; i<links.length; i++) {
  if (links[i].href.indexOf('javascript:') == 0 || links[i].href.indexOf('mailto:') == 0) {
  }
  else {
    $(links[i]).attr('target', '_parent');
  }
}
...