SWFaddress2.3在IE6或IE7下的一个bug
2009-08-21 16:18
288 查看
bug原形:
在IE6或IE7下运行安装了swfaddress2.3的html页面,用查看http请求的工具,发现<body>以下的页面内容会重复加载。
如图所示:
把swfaddress-2.3.js,与swfaddress-2.2.js对比,发现一个明显的不同。
在定义下面这个变量时,2.3版是在body的innerHTML里增加iframe
var _load = function() {
if (!_loaded) {
_loaded = true;
//IE版本小于8时
if (_msie && _version < 8) {
var iframe = '<iframe id="' + ID + '" src="javascript:false;" width="0" height="0"></iframe>';
_d.body.innerHTML = iframe + _d.body.innerHTML;
_iframe = _d.getElementById(ID);
......
......
而2.3版之前是把iframe作为body的一个新的子节点
if(_1d.isIE()){
document.body.appendChild(document.createElement("div")).innerHTML="<iframe "+_45+" src=/""+ (_2c["html"]?_24.replace(//.js(/?.*)?$/,".html")+"?"+_2d():"javascript:false;")+"/"></iframe>";
......
......
而IE6,IE7对于innerHTML解析不是很完善,它会重复加载。
所以要解决这个bug,只能仿照2.3版之前那样的写法,把iframe作为一个子节点写在body内容最后。
_d.body.appendChild(document.createElement("div")).innerHTML = iframe ;
bug修改后,如图所示:
在IE6或IE7下运行安装了swfaddress2.3的html页面,用查看http请求的工具,发现<body>以下的页面内容会重复加载。
如图所示:
把swfaddress-2.3.js,与swfaddress-2.2.js对比,发现一个明显的不同。
在定义下面这个变量时,2.3版是在body的innerHTML里增加iframe
var _load = function() {
if (!_loaded) {
_loaded = true;
//IE版本小于8时
if (_msie && _version < 8) {
var iframe = '<iframe id="' + ID + '" src="javascript:false;" width="0" height="0"></iframe>';
_d.body.innerHTML = iframe + _d.body.innerHTML;
_iframe = _d.getElementById(ID);
......
......
而2.3版之前是把iframe作为body的一个新的子节点
if(_1d.isIE()){
document.body.appendChild(document.createElement("div")).innerHTML="<iframe "+_45+" src=/""+ (_2c["html"]?_24.replace(//.js(/?.*)?$/,".html")+"?"+_2d():"javascript:false;")+"/"></iframe>";
......
......
而IE6,IE7对于innerHTML解析不是很完善,它会重复加载。
所以要解决这个bug,只能仿照2.3版之前那样的写法,把iframe作为一个子节点写在body内容最后。
_d.body.appendChild(document.createElement("div")).innerHTML = iframe ;
bug修改后,如图所示:
相关文章推荐
- 一个在IE5.5,IE6,IE7,IE8都存在的BUG
- IE6、IE7环视应用中的一个bug
- 一个BUG显示了IE7和IE6解析URL中中文参数能力的不同
- IE7的一个边界BUG
- ie6和ie7下z-index bug的解决办法
- 【技术】ie6,ie7,ie8 css bug汇总以及兼容解决方法
- ie6,ie7,ie8 css bug兼容解决记录
- IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总
- js在ie6下的一个bug—未结束标签的错误
- CSS IE6、7下关于Position的一个bug问题分享
- jquery 导航代码,兼容IE6,IE7,FF,OPREA,谷歌。自己修改其的BUG,特此保存以后研究。 (转)
- CSS在IE6、IE7和Firefox兼容的一个小技巧
- ie6,ie7,ie8 css bug兼容解决记录
- 项目问题备忘之IE6、IE7父元素滚动,子元素不跟随滚动bug和点击穿透bug
- ie6,ie7,ie8 css bug兼容解决记录
- ie6,ie7,ie8 css bug兼容解决方法集合
- IE6下js通过css隐藏select的一个bug
- ie6,ie7,ie8 css bug兼容解决方法
- 一个IE6下重复加载的BUG
- 【IE6】一个IE6下重复加载的BUG