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