开发者

iframe click event to change location/URL (cross domain but have control of both domains)

I'm working on a site which comprises off the main site - then campaign sites which are off-shoots.

The campaigns are on a separate domain (but I have access to both).

The campaigns are pulled into the main site via an iframe and each iframe will contain the main sites menu (this gets pulled to the campaign site via a proxy).

What I need is that if a link on the main navigation gets clicked the actual browser location will change rather than just the iframe. So that the browsers URL changes a开发者_如何学Pythonnd the user actually leaves the page with the iframe.

I'm aware of the same origin policy which is why I'm having so much trouble - BUT as I have control of both and can modify scripts on each I figure there must be a way around this?

I've been trying things like

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

but it doesn't seem to work regardless of domain its placed on.. any pointers / help / suggestions greatly appreciated.

Andy


Shouldn't it be window.parent rather than just parent? From inside the iframe you should be able to do window.parent.location = linkLocation;

Edit: You also have the option to do

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');
  }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜