IE8将dynamiciframe内容从caching重新加载到错误的iframe中

我有一个页面上有多个iframe。 每个iframe正在调用一些javascript,将新的iframedynamic写入父窗口的文档中。

这在第一页加载工作正常。 但是,如果页面在IE8(及更早版本)中刷新,其中一个dynamic生成的iframe将从caching中加载到父页面上的一个硬编码插槽中。 看下面的例子:

http://www.risingspiral.com/ie8-iframe-refresh/

在IE8刷新(可能需要几次尝试)Spot 2_将从caching加载到spot3.html的iframe中。 spot3.html根本不会被调用。

我已经保护免受IEdynamiciframe刷新问题在这里描述:

http://buildingonmud.blogspot.com/2010/06/ie-iframe-refresh-and-back-button.html

但似乎还有一个问题。 同样有趣的是,问题总是出现在iframes spot2.html和spot3.html之间(至less对我而言)。

我已经尝试了很多不同的configuration来尝试解决这个问题。 所以,我正在寻找新的build议。

有任何想法吗?

Solutions Collecting From Web of "IE8将dynamiciframe内容从caching重新加载到错误的iframe中"

我遇到了非常类似的问题,一旦加载后动态生成的iframe卡在第一个src中,即使父页面在每次重新加载时都会更改iframe的src属性,iframe仍会加载第一个。

经过几个小时的斗争,我发现这只是<IE8刷新错误,如果页面导航到使用链接或通过在地址栏中输入URL,一切都按预期工作。 所以只要你不刷新页面,或通过再次输入地址刷新它,你应该没问题。


更新:

这个问题似乎可以通过再次设置iframe的SRC属性来解决

iframe.src = iframe.src; 

这似乎迫使<IE8真正尊重给定的网址。

老问题,但问题仍然存在。 我现在正面临着这个问题。 问题是我无法控制何时加载iframe,因为它是由异步插入页面的脚本生成的。

经过一些黑客,我选择在超时后刷新帧。 这是我找到的最好的解决方案。

 if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ var ieversion=new Number(RegExp.$1); if (ieversion<=8){ setTimeout(function(){ iframeReload(); }, 1000); function iframeReload() { $("iframe").each(function(index) { $(this)[0].src = $(this)[0].src; }); } } } 

我有同样的问题,并通过每次创建具有不同ID的iframe(只在IE11上测试,但希望这应该可以解决所有版本的问题)来解决它:

 iframe.id = iframe.name = "iframe$" + Math.floor(Math.random() * new Date().getTime()); 

请注意,设置名称可能没有任何作用(要测试;我只能告诉只设置名称不能解决问题)