日期:2014-05-17  浏览次数:20631 次

IE8中text得到焦点后死掉(IE8不再支持CSS expression)
项目中有个地方需要根据情况显示不同的图片,而由img.src得到的路径是
一个绝对路径感觉替换起来比较麻烦,所以想到用css来改变图片。在网上
找了找大家都说css2.0中没有控制img的src属性的办法(好像3.0就有了,
拭目以待),不过大家提供了一种曲线救国的方法,如下
.menu_close{
text:expression(src="images/menu_close.gif");
}

.menu_open{
text:expression(src="images/menu_open.gif");
}

.menu_leaf{
text:expression(src="images/menu_leaf.gif");
}
就是在css中用js来控制。移植到项目中挺好用的,当时一心只想解决这个问题
也没有想别的,网上只是说这种方法可能占资源多。
恶梦开始了。。。。。。
第二天有个同事说他的IE浏览器坏了,所有页面的text文本框一点,IE直接死掉了。
当时以为是他的IE出问题了,他当时用的是IE8卸载改用IE7就没有问题了,认定
是他的IE出问题了。后来自己在开发中也碰见这个问题了,难道我的IE也出问题,
昨天一切还没有问题呢,郁闷。
(1)由于在进入页面的用Js递归创建了菜单,以为是递归方法没有弄好发生了
传说中的内存泄露,于是改啊改改到黄花菜都凉了还是老样子。
(2)我们项目的主界面是用的IFrame来布局的,上面说的含有改变img的src的页面
简称A页面,突然发现A页面不出现在任何IFrame中就不出现IE死掉的情况。仔细研究
才发现是由于text:expression(src="images/menu_close.gif");的原因。
删掉css样式,用笨办法控制图片src后终于ok了。
看来IE8对text:expression的支持很不好,以后要小心,给大家提个醒。


后记:
解决问题后去网上搜索才发现IE8不再支持CSS expression,真晕。