今天在IE8上发现了一个问题。用js(用了prototypejs)创建的element,设置了它的class以后,浏览器没有“正确”的对其使用css样式。
创建element的语句如下:
var wrapper = new Element('div', { className: 'wrapper' });
标准地设置element的class属性应该是:
ele.setAttribute('class', 'wrapper');
但是IE6, IE7都有BUG,以上语句不起作用,但以下语句可以:
element.setAttribute('className', 'wrapper');
prototypejs替“我们”解决了这个不兼容的问题,将setAttribute包了一层,变成了writeAttribute。writeAttribute中做了一个自动的映射,“我们”统一都使用className作为key,如果不是IE,那么会把'className'映射成'class',new Element(xxxxxx)内部是用了writeAttribute来设置Attribute的。所以,在IE8出来以前,天下太平......
好了,现在IE8来了,MS的工程师们终于发现了这个BUG,并把它给修正了... 现在setAttribute('class', xxx)有效,而setAttribute('className', xxx)无效了 @_@
prototypejs要修正这个bug,得对IE的版本分类讨论了... 不过我发现
var ele = new Element('div');
ele.className = 'wrapper';
在主流浏览器上都有效。
额外说一句,在IE8中, margin: 0 auto; 需要在其父节点的样式中定义text-align: center后才正常显示......
分享到:
相关推荐
9. **兼容性**:考虑到浏览器差异,PrototypeJS通常会提供跨浏览器的解决方案,确保在多个版本的IE、Firefox、Safari、Chrome等浏览器上正常运行。 10. **版本改进**:1.6.1相较于1.6可能包含了一些bug修复、性能...
在修复这些bug时,我们需要关注以下几个关键点: 1. **CSS兼容性**:IE6及以下版本对CSS的支持非常有限,例如不支持浮动定位、透明度、圆角边框等。因此,需要使用条件注释或者专门针对IE的CSS hack来确保日期时间...
标题中的"ie9.zip_ie7.js"表明这是一个与Internet Explorer浏览器相关的压缩文件,特别是针对IE9版本,并且可能包含一个名为"ie7.js"的脚本文件,该文件旨在为低版本的IE浏览器(如IE6、IE7、IE8)提供兼容性支持。...
6. **Function.prototype.call和.apply**:IE6-8在某些情况下对这两个方法的实现有bug,可能需要额外的处理。 7. **CSS3属性**:IE9开始支持一些CSS3属性,但IE6-8则需要特殊的库或脚本来模拟。 8. **...
在这种情况下,ie7.js是一个知名的库,它通过模拟新的DOM方法、修复CSS渲染bug以及提供其他兼容性补丁,帮助提升IE6-8对现代Web标准的支持。 ie7.js插件的核心原理是通过JavaScript模拟实现一些IE较新版本中才有的...
Prototype Lazyload 图片延时效果 JS...支持 prototype 的 延时效果代码很少,自己写了一个简单的,可能有一些Bug 基本支持 IE6、IE7、IE8、IE9、FF、Chrome、Safari Prototype 1.7.0 (1.6.0也可以只是IE9不支持)
"webpack-ie9-bug"这个存储库正是为了演示和解决在IE9中遇到的特定错误而创建的。 在JavaScript的世界里,IE9是个特殊的浏览器,因为它不支持许多现代JavaScript特性,如ES6的箭头函数、Promise、模板字符串等。...
在使用prototype.js库时,开发者需要注意一些特定的问题以避免潜在的错误或不期望的行为。以下是一些关键点的详细说明: 1. **String.prototype.camelize**: `camelize`方法用于将字符串转换为驼峰式命名,常用于...
"Prototype 1.5.1 RC1" 是一个JavaScript库的版本,专注于提供Web开发中的对象原型扩展和AJAX功能。这个版本是Release Candidate 1(RC1),意味着它是正式版发布前的最后一个测试版本,通常包含了一些重要的修复和...
采用了命名空间以兼容其它JS的库 (例如 jQuery, Prototype, 等等) 对FLASH8和FLASH9播放器的支持 SWFUpload背后的设计思想和其它基于Flash的上传工具是不同的。它将浏览器的中UI交给开发人员来控制。开发人员能够...
如果尝试在IE8中直接使用`indexOf`,浏览器会抛出一个错误,因为这个方法在IE8中并未定义。 为了解决这个问题,开发者通常需要通过polyfill(垫片)的方式来为旧版浏览器提供缺失的功能。在提供的代码片段中,就是...
IE的String.prototype.split()函数bug 脚本: “a:b:c”.split(/(:)/) Firefox输出: [“a”,”:”,”b”,”:”,”c”] IE7/8(含IE9兼容的模式)输出: a,b,c IE9 中文本框中出现了 \n时 会把他保留 需要去掉 而...
然而,在某些IE浏览器版本中,其内置的`fixed column`功能存在一些bug,导致冻结的列内容无法正常显示。这个问题主要出现在IE10和IE11等较旧的IE浏览器版本中。 **问题描述** 当表格列数量超过屏幕宽度时,表格会...
- jQuery 3.x系列开始,不再支持IE6/7/8,更加专注于现代浏览器的兼容性和性能。 4. **jQuery与其他库的比较:** - **与原生JavaScript的比较**:jQuery将JavaScript的很多复杂操作简化,使得新手也能快速上手,...
- **良好的兼容性**:支持主流的浏览器如Chrome、Firefox、Safari、Edge,同时兼容IE8及以上的版本。 - **响应式设计**:能自动适配不同设备和屏幕尺寸,确保在手机、平板电脑等移动设备上的良好显示效果。 2. **...
总的来说,Scriptaculous-js-1.7.0.tar.gz(part2)这个压缩包对于想要使用Scriptaculous框架开发富交互Web应用的开发者来说,是一个宝贵的资源。它提供了许多实用的组件和工具,可以帮助开发者快速构建具有出色用户...
但凡用过js 中的toFix() 方法的, 应该都知道这个方法存在一个小小的BUG。 在IE 下和FF 下对于小数的进位有点不同。 例如( 0.005)在ie 下 toFix(2)=0.00. 在FF 下 toFix(2)=0.01. 这样就会造成数据的差异。 我们...
0.009.toFixed(2)本该返回0.01的结果,可它却返回了一个0.00,这是这个方法的一个BUG,且这个方法对客户端的JS版本要求有点偏高,至少在IE5.0里这个方法用不起来,所以我写了上面的一段修正代码,并且还解决了这个...
8. **更新和维护**:由于你使用的是特定版本(2.15.14),随着时间推移,ElementUI 可能会发布新版本,包含新的功能和 bug 修复。要保持项目与时俱进,记得定期检查更新并更新本地引用资源。 总之,ElementUI 本地...
最近利用闲暇时间,作了个简单的聊天室,该聊天室使用 prototype.js (v1.4) 类库,主要应用Ajax技术、Application变量,做到小型架构,页面无刷新,[b]无数据库[/b],能查看在线用户等特点。 <br>刚开始打算用...