首页前端开发CSSFirefox返回时Iframe的显示Bug的解决方法

Firefox返回时Iframe的显示Bug的解决方法

时间2024-02-09 04:58:02发布访客分类CSS浏览694
导读:收集整理的这篇文章主要介绍了Firefox返回时Iframe的显示Bug的解决方法,觉得挺不错的,现在分享给大家,也给大家做个参考。 <script tyPE="text/java...
收集整理的这篇文章主要介绍了Firefox返回时Iframe的显示Bug的解决方法,觉得挺不错的,现在分享给大家,也给大家做个参考。 script tyPE="text/javascript"> //![CDATA[
if(getCookie('firefoxIframe')){
document.wrITe('p id="addAd"> a href="cookie.htML"> 点击这里删除这个iframe/a> /p> ');
document.write('iframe height="120" width="300" marginheight="0" marginwidth="0"
frameborder="0" src="nAdPRe.swf"> /iframe> ');
} else{
document.write('p id="addAd"> a href="cookie.html"> 点击这里增加一个iframe/a> /p> ');
}
//]]> /script>
打开Bug演示,由于cookie不存在,显示的三个flash都是通过Iframe实现的 
点击“点击这里增加一个iframe广告”,跳转到一个新的页面写入名为firefoxIframe的Cookie 
点击“返回”或者浏览器的返回按钮,回到Bug演示页面,发现iframe里面的flash错位,即位置2的iframe链接的flash并没有载入,显示的是位置3的flash,位置3的显示的是位置4的flash,位置4的flash却依旧存在。 
关闭标签页(不是关闭整个浏览器,如果关闭整个浏览器Cookie也失效)或新打开一个标签页重新载入该页面,4个Iframe正常显示4个flash 
此时如果点击“点击这里删除这个iframe广告”,跳转到新页面删除cookie,返回也发现Iframe中的flash错位 
如果写入Cookie或者删除Cookie时,不通过浏览器的返回,直接通过网址访问,则不会出现错位 
简单分析和解决方案
似乎Firefox返回时,Javascript重新执行了,但是Iframe并未依据src属性重新载入,而是给Iframe和src以类似编号似的配对,而由于返回时Javascript的执行,导致Iframe多了一个(或少了一个),这就导致后面的配对错位。

以上仅为猜测,但这的确是Firefox(2.0.0.3)的一个bug,IE返回时Javascript重新执行,并且Iframe的依据src重新载入,opera返回时Javascript不重新执行,页面没有变化。

解决方案是在文本中增加一个隐藏的Iframe来占位,上面代码修改如下代码如下:

document.write('p id="addAd"> a href="cookie.html"> 点击这里增加一个iframe/a> /p> ');
//把上面的代码修改成为
document.write('iframe src="#" style="display:none; "> /iframe> ');
document.write('p id="addAd"> a href="cookie.html"> 点击这里增加一个iframe/a> /p> ');

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Firefox返回时Iframe的显示Bug的解决方法
本文地址: https://pptw.com/jishu/606470.html
html链接与文本标签们 当标题不能显示完整的解决方法

游客 回复需填写必要信息