iframe单击事件以更改位置/ URL(跨域但可控制两个域)

时间:2011-02-25 17:08:14

标签: jquery iframe proxy cross-domain cross-domain-policy

我正在一个包含主要网站的网站上工作 - 然后是关闭网站的广告系列网站。

广告系列位于一个单独的域中(但我可以访问这两个域)。

广告系列通过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;
    });
});

但它似乎没有任何工作,无论它放在哪个域...任何指针/帮助/建议非常感谢。

安迪

1 个答案:

答案 0 :(得分:1)

不应该是window.parent而不仅仅是parent吗?从iframe内部,您应该能够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');
  }
}