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