0

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

4

1 回答 1

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,该 URL 存储在此处的“url_204”变量中。

于 2012-11-21T07:18:19.123 回答