重定向发生在IFrame中

时间:2012-11-21 07:04:28

标签: iframe

我有一个联盟网址,我想将其放入IFrame中,以便当用户访问我的IFrame页面时,联盟会员Cookie被丢弃在他们的计算机上。但是,会员URL不是实际产品的页面,而是在删除cookie后重定向到产品页面。当它重定向到产品页面时,IFrame就会爆发。有什么我可以这样做的,当联盟网址重定向时,它仍然停留在同一个IFrame页面上?

1 个答案:

答案 0 :(得分:0)

你可以写一些javascript来防止帧破坏,正如Jeff Atwood在这篇精彩的博客文章中所描述的那样:

http://www.codinghorror.com/blog/2009/06/we-done-been-framed.html

我已经为自己的一个网络应用编写了一个功能。它可以防止在指定的时间内破坏,因此用户仍可以根据需要离开页面。

function preventBusting (time, frame) {
  var prevent_bust = 0;
  window.onbeforeunload = function () { prevent_bust++ };

  var intervalID = setInterval(function () {
    if (prevent_bust > 0) {
        prevent_bust -= 2;
        window.location.assign(url_204);    
        frame.text("This site does not allow framing.");
    }
  }, 1);

  setTimeout(function () {
    window.clearInterval(intervalID);
  }, time);
}

您应该在将iFrame添加到页面后立即调用此函数。在这种情况下,'time'是防止破坏的时间量(以毫秒为单位),'frame'是对iframe的jQuery引用,因此如果尝试破坏,可以用一些文本替换它。您还需要一个返回204的网址,该网址存储在“url_204”变量中。