我有一个网站,上面有几个广告横幅和横幅。其中许多横幅试图访问父窗口。我需要将网站添加到iFrame中以供预览,因此编辑人员可以看到桌面和移动网站。这很有效,但有些横幅尝试访问父窗口,当父窗口不再是主网站时,内容会被覆盖,因此iFrame只显示广告。
我尝试过不同的方法来设置从iFrame对父窗口的禁用访问。在HTML 5中,iFrame有一个sandbox属性,但我需要启用许多内容,例如allow-scripts,横幅仍然可以访问父框架。
我在iframe中呈现的页面上尝试了以下代码的几种不同变体:
// Variant 1
window._parent = window.parent;
window.parent = null;
// Variant 2
window.parent = "";
// Variant 3
window.parent = window;
// Variant 4 - from the parent document
window.onload = function() {
var frm = document.getElementById('childFrame');
var win = frm.contentWindow || (frm.contentDocument && frm.contentDocument.parentWindow) || (frm.document && frm.document.parentWindow);
if (win) win.parent = null;
}
还有更多,但你可能会看到这个概念,但似乎没有什么工作正常。通常看起来一切都进入无限循环,这使得浏览器没有响应。