文档章节

IE6 动态创建 iframe 无法显示的 bug,万恶的IE6

深圳大道
 深圳大道
发布于 2016/12/29 15:32
字数 280
阅读 5
收藏 0

情况一,触发源是 a 标签,带href 属性 (不正常)
情况二,触发源是 a 标签,但没有 href 属性,利用onclick事件(正常显示)
情况三,触发源是 button 标签,利用onclick事件(正常显示)

document.getElementById('c_btn').onclick = function () {
	document.getElementById('c').innerHTML = '<iframe src="http://www.mangguo.org/" width="500" height="100"></iframe>';
}

这三种情况下除了第一种 IE6 无法成功加载 iframe,导致 iframe 区块显示空白外,其余情况均正常。也就是说,问题的根源在于点击 a 标签触发加载行为。并不在于使用 innerHTML 方法。通过以下例子(标签 a 触发同时使用 createElement 创建节点)可以验证这一点的正确:

document.getElementById('d_btn').onclick = function () {
	var el = document.createElement('iframe');
		el.width = '500';
		el.height = '100';
		el.src = 'http://www.mangguo.org/';
	document.getElementById('d').appendChild(el);
}

结论:通过 a 标签触发加载 iframe 页面的行为会导致 IE6 下 iframe 页面空白。
解决方案:创建 DOM 后,再对该 iframe 的 src 进行一次重置:

iframeEl.src = iframeEl.src;

或者干脆就不要用 a 标签了,改用span等标签,问题解决

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/7914517

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
IE6 hack for js

1. ie6下iframe不显示的问题 在ie6下有时会碰到iframe不显示的问题,刷新后才能显示,此问题不是页面加载慢导致的,出现该问题的原因有多种可能: src属性放在iframe中最前面(未曾遇见) 高...

缪斯的情人
09/29
0
0
jquery 判断 IE6 浏览器 javascript

jquery博客依然整3D地图,火狐 谷歌 IE 7 8 9搞定了,依然剩下,蛋疼的IE6。 为了确保快速上线,不得不选择css hack 因为有些div宽度是根据屏幕宽度js判断了。 傻眼了,连css hack都不好整。...

天外飘雪
2012/09/14
93
0
IE6、IE7、IE8的CSS、JS兼容

Internet Explorer 6中查看使用 Microsoft JScript 的网页,可能会遇到web浏览器速度较慢的性能问题。原因是如果js脚本同时创建大量变量,jscript引擎执行垃圾收集算法时会监视脚本中变量分配...

ibm_hoojo
2011/01/12
0
0
IE iframe cookie问题(p3p)

前段时间碰到一个问题,就是在IE下,使用iFrame嵌入页面时,该页面的会话级别的cookie无法写入,导致服务端始终无法获取JSESSIONID,每次都是产生一个新的,使得Session无法使用。 只需要设置...

疯狂的艺术家
2012/03/14
3.4K
0
IE6 、 IE7 、 IE8 在 CSS 和 JS 方面的区别 :

1、IE8中的css中关于width或是height中如果使用像素形式作为参数时,参数必须是带“px”的,而且此参数必须是大于0的,而在IE6和IE7中是支持不带“px”参数的,而且参数是可以为一个负数。 ...

小样
2012/01/12
551
1

没有更多内容

加载失败,请刷新页面

加载更多

数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
32分钟前
6
0
MySQL 表崩溃修复

MySQL日志报错 2019-10-19 13:41:51 19916 [ERROR] /usr/local/mysql/bin/mysqld: Table './initread_hss/user_info' is marked as crashed and should be repaired2019-10-19 13:41:51 1......

雁南飞丶
42分钟前
5
0
Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
今天
4
0
8086汇编基础 start 程序入口标签的示例

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
今天
4
0
uni app 零基础小白到项目实战2

<template> <scroll-view v-for="(card, index) in list" :key="index"> <view v-for =(item, itemIndex) in card"> {{item.value}}</view> </scroll-view></template> GraceUi va......

达达前端小酒馆
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部