Internet Explorer重新加载IFrame
Internet Explorer reloads IFrame
我有一个web表单(使用ZK框架),比如说在http://www.example.com/myform
此表单包含在我的主页中(例如http://www.anotherexample.com)。
现在奇怪的是:
在InternetExplorer9-11中,每当我取消聚焦字段时,IFrame就会完全重新加载(在那里会进行一些字段检查)。但这种情况只发生在IE和IFrame中。如果我加载http://www.example.com/myform直接使用,效果良好。
另一个让整件事变得奇怪的细节是:如果我在IE中添加打开一个选项卡并加载http://www.example.com/myform在那里,iframe突然也正常工作(在一次重新加载之后)。
不幸的是,IE在重新加载iframe时没有显示任何错误,所以我不知道发生了什么以及为什么。其他浏览器(Firefox、Chrome)与IFrame配合得非常好。
有什么线索吗?原因是什么?
在这种情况下,原因是P3P,如下所述:https://blogs.msdn.microsoft.com/ieinternals/2013/09/17/a-quick-look-at-p3p/
简而言之,Internet Explorer拒绝来自iframe等中第三方上下文(不同域)的cookie。这当然会导致上述行为:
- 发送到ZK后端的任何请求(包括在"焦点丢失"时触发的请求)都不会有会话id(因为没有cookie),因此ZK将触发完全重新加载
- 在另一个选项卡中打开ZK应用程序可以创建一个cookie,然后iframe中的ZK应用可以访问该cookie
解决方案是发送正确的P3P头,在ZK中,这可以通过各种方式完成,例如通过.zul文件头指令、servlet过滤器或直接在Web服务器上完成。完成此操作后,该应用程序在IE 9-11中正常工作。
相关文章:
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- 使用Javascript(或jQuery)加载iframe内容
- Internet Explorer重新加载IFrame
- Fine Uploader-未收到来自已加载iframe的有效消息
- 使用本地生成的代码通过 JavaScript 加载 IFrame
- 加载iframe时激发的事件
- 动态渲染 .mht 文件,无需加载/iframe/嵌入
- 如何在选择列表项时重新加载iframe
- 如何使用JavaScript在iframe中重新加载iframe
- 在featherlight.js中延迟加载iFrame
- 实时在更改时重新加载iframe脚本
- 如何在不闪烁的情况下加载Iframe
- 如何按时间间隔重新加载Iframe内容,使其不会闪烁
- 设置 URL 以在 Django 模板中加载 iframe
- 在离开页面之前加载 iframe
- 加载 Iframe src,并从水平下拉菜单中进行选择
- 同时加载 iframe 并重置文档位置
- 单击按钮时重新加载 iframe 内容(本地 HTML)
- 单击元素时重新加载 iframe src
- 在可见时加载 iframe