如果您在 HTML 文档中使用iFrame
元素,则子页面将加载来自浏览器的所有会话和 cookie 数据。
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Stack Overflow in an iFrame</title>
</head>
<body>
<h1>Stack Overflow in an iFrame</h1>
<iframe src="http://stackoverflow.com" width="640" height="480" />
</body>
</html>
暂时忽略 SO 实际上不允许将自己加载到 iFrame 中。如果是这样,iFrame 加载的 SO 页面将显示您已登录。
如何在没有任何 cookie 或会话数据的情况下使用 iFrame?(就像 Chrome 中的隐身模式)
为什么?
我的公司销售一种产品(网络应用程序),供人们用来构建定制网站。当他们通过身份验证并访问他们的网站时,我们会向他们展示经过身份验证的 UI 版本,以便他们可以编辑内容。未经授权的用户只能看到静态网站。使用多个浏览器或清除 cookie 对我们的用户来说不是一个合理的期望,因此我们希望在 iFrame 中向他们显示他们网站的预览,以便他们可以看到访问者会看到什么。我们还希望显示具有较小分辨率 iFrame 的网站的“移动”预览,以便他们可以看到访问者通过手机访问网站时会看到什么。这些 iFrame(s) 需要在不访问浏览器的 cookie 或会话数据的情况下加载,以便它们在未经身份验证的模式下加载,就像 Chrome 在隐身模式下一样。
我还没有尝试任何东西,因为我不知道从哪里开始。我确实发现HTML5为element添加了一些sandbox
属性值iFrame
,但它们似乎都没有帮助解决这个问题。也许可以用 JavaScript 做一些事情,我们已经在我们的项目中使用了 jQuery。
注意:我们的目标是只使用有效的 HTML5