如何使用javascript以编程方式从iframe中删除沙箱属性

时间:2013-04-21 19:48:26

标签: javascript jquery html google-chrome

我不认为这是可能的,但是,我发现了这句话:

  

"It is strongly discouraged to use both allow-scripts and allow-same-origin at the same time, as that allows the embedded document to programmatically remove the sandbox attribute."

我的iframe需要有一个沙盒,但只有当我浏览某些URL时,嵌入式浏览上下文会尝试将内容导航(加载)到顶级浏览上下文(跳出框架...)

在其他页面上,沙箱需要完全删除,因为它不允许我从具有不同来源的网站浏览...

  

尝试导航的框架是沙箱,因此不允许导航其祖先。

以编程方式更改沙箱:

document.getElementById("frame").sandbox = "";

...也不起作用,因为这仍然存在限制......因此,我需要以某种方式完全删除该属性,我将如何做到这一点?

2 个答案:

答案 0 :(得分:5)

  

这些标志仅在嵌套浏览上下文时生效   导航iframe。删除它们,或删除整个沙箱   属性,对已加载的页面没有影响。

更多信息 - Here

答案 1 :(得分:0)

您可以使用iframe.removeAttribute("sandbox")从元素中删除沙盒属性,这将使iframe不会针对您加载到其中的 next 内容(而不是当前加载的内容)进行沙盒化。