我有一个简单的chrome扩展程序,可以将iframe注入到活动页面中(不是重要部分)
我想嵌入一个位于http://diep.io的游戏,但是此站点已实现了一些frame-busting
技术。我仍然希望能够将其加载到 iframe 中,以便使用 Iframe (类似于的其他标签打开该文件)嵌入或 webview (但是您可以使之正常工作))。
那么我怎么能得到anti-frame busting
型的东西呢?
显然,这是跨域,因此在内部编辑 DOM 不是确实最容易/应该不是有可能。我已经尝试过 sandbox 属性,但这只会导致iframe中的上一页(链接中心类型的页面)出现问题,从而无法使用。
因此,这里的主要问题是如何跨域 embedded page
防框架破坏 无 沙盒属性?
答案 0 :(得分:0)
我找到了解决方案。 我的iframe使用一个按钮进行导航(HTML ID为“ deHBox”) 而且我的iframe与标记为“ Ifr”的变量链接。
document.getElementById("deHBox").addEventListener("click", function(){
sandbox(false);
Ifr.src = url;
Ifr.style.height = 'calc(100% - 23px)';
Ifr.style.width = '100%';
setTimeout(function() {sandbox(true)}, 500);
});
setTimeout(function() {sandbox(true)}, 500);
function sandbox(on) {
if (on == true) {
Ifr.sandbox = "allow-scripts allow-forms allow-pointer-lock allow-popups allow-same-origin";
} else {
Ifr.removeAttribute('sandbox');
}
}
我刚刚将此添加到了injected.js
文件中...