我正在使用srcdoc属性将HTML内容加载到iframe中。 iframe是一个没有权限的沙盒iframe,因此iframe中的所有Javascript都被阻止。但是,仍会在iframe内触发远程请求(例如CSS,图像等)。
有没有办法告诉iframe只加载我在srcdoc属性中提供的内容而不再发出任何其他请求?
提前致谢
答案 0 :(得分:5)
大概不是因为沙盒化iframe意味着避免在主文档和iframe文档之间共享敏感数据或限制潜在的破坏性行为。
iframe在功能上仍然是一个浏览器窗口,并且会像这样,加载在其中声明的所有外部资源,唯一的区别是它显示在另一个文档而不是另一个窗口中。
如果srcdoc
内的代码调用了远程资源,那么浏览器正在通过加载它们来完全按照您的要求进行操作。
如果您不想加载这些资源,则必须使用srcdoc
代码对其进行编辑。
话虽如此,可能存在使用Content Security Policy
标记在iframe文档中使用meta
来阻止资源加载的方法:
<meta http-equiv="Content-Security-Policy" content="default-src 'none';">
或
<meta http-equiv="X-Content-Security-Policy" content="default-src 'none';">
我在 Firefox 39.0.3 下尝试了这个,但它没有用,可能是因为以下原因:
Bug 663570 - Implement Content Security Policy via tag
无论如何,有关更多信息,请参阅: