首先对于IE6该死的问题不做讨论了,一句话“客户要用”就无需多讲了。
IE6的CSS兼容性主要是美工头痛的事,不做深入。
通常的CSS兼容IE的大杀器就是使用条件注释
<style type="text/css">
.ie6-down {
display: none;
}
</style>
<!--[if IE 6]>
<style type="text/css">
.ie6-down {
display:block;
margin-left: -45px;
margin-top: 15px;
font-size: 14px;
color: gray;
}
</style>
<![endif]-->
两个style标签,第一个定义的样式是让元素不可见,第二个定义的样式是对IE6生效在IE6下可见。
还是回到Javascript兼容性问题点的记录,先记一部分,全面遇到再加吧。
这些问题解决之后看起来都比较简单,但解决的过程注定十分痛苦,记录一下留个纪念。
1.iframe[name]
在IE6中动态创建iframe时,其name属性务必写在标签中,否则不生效。
var iframe = $("<iframe name='my_iframe' frameborder='0' style='width:100%; height:100%; border:0; display:block'/>")[0];
iframe.src = settings.href;
只有这样写IE6才能够识别form/a的target='my_iframe'
如果你是按下面的写法创建的iframe,那么就悲剧了。
var iframe=$("<iframe>");
iframe.name='my_frame';
2.checkbox/radio[checked]
在IE6动态创建checkbox/radio时,其checked属性务必写在标签中,否则不生效
var checked="";
if (elem.val() == "1") {
checked='checked="checked"';//just because fuck ie6
}
var targetElem = $('<label><input type="checkbox" name="param_value" '+checked+' value="1" />自动数据同步</label>');
如果写法如下,那么在IE6上是悲剧的
var targetElem = $('<label><input type="checkbox" name="param_value" value="1" />自动数据同步</label>');
targetElem.find("input").attr('checked','checked');
3.form[class]
在IE6/7中,如果form中有一个域的名字叫做className那么悲剧了,form.classXxx将无法正确执行。
原代码示例:
<form id="dataEditor1" action="Controller"
service="ConfigService.updateAdapter" nextstep="close" class="DataEditor">
<div>
<label>
<span>账单类型:</span>
<input type="text" name="billType" value="${ param.bill_type}"
validates="{required:true,messages:{required:'此参数不允许为空!'}}" />
</label>
</div>
<div>
<label>
<span>适配器名称:</span>
<input type="text" name="name" value="${ param.bill_name}"
validates="{required:true,messages:{required:'此参数不允许为空!'}}" />
</label>
</div>
<div>
<label>
<span>适配器实现类:</span>
<input type="text" name="className"
value="${ param.adapter_class}"
validates="{required:true,messages:{required:'此参数不允许为空!'}}" />
</label>
</div>
<input type="hidden" name="action_type"
value="${ param.action_type}" />
<input type="submit" name="submit" value="提交" class="spq_input" disabled="disabled" />
<input type="reset" name="reset" value="重置" />
</form>
注意“适配器实现类”的input,它的name="className"。
使用js取值
var form=$("form.DataEditor");
alert("forms:"+form.length);//结果为0
alert($("form")[0].className);//结果为[Object object]
这个悲剧是因为IE中支持按照表单名和表单域名进行索引,例如dataEditor1.billType。幸好在IE8+已经修复此问题了。
4.待续
分享到:
相关推荐
ie不执行javascript修复ie不执行javascript修复ie不执行javascript修复 当IE不能正常运行时,打开该工具就可以了,自动修复
IE启用javascript IE启用javascript IE启用javascript IE启用javascript IE启用javascript
jquery 判断 IE6 浏览器
ie6 ie7 ff浏览器兼容 border:2px solid #00f; /*IE、ff的属性*/ border:2px solid #090\9; /* IE6/7/8的属性 */ border:2px solid #F90\0; /* IE8支持 */ *border:2px solid #F00; /* IE6、7支持 */ _border:2...
修复IE的JavaScript的批处理。比如发现IE下,点击JavaScript链接不响应,多数可以用此脚本。
IE的JavaScript调试工具,感觉还行
在IE中的JS调试一直是影响我们开发效率的一大问题,本文就介绍如何在IE中调试JS
IE6、IE7、IE8对css和js支持方面差异的研究
js程序的调试是相当郁闷的,很多错误是无法控制的,在没有什么好的调试工具那是更加麻烦的,现在的情况比以前稍好,在Firefox下还有firebug,这的确是一个不错的js调试工具,但在IE下使用就很麻烦,而且效果很不好,...
本文档内容涵盖:IE6升级到IE9过程中Javascript, DOM, HTML, CSS等方面的变化和调整。 概述 2 第一章:HTML 3 第一节:IE7-IE8更新 3 1. 如果缺少结束标记的 P 元素后跟 TABLE、FORM、NOFRAMES 或 NOSCRIPT 元素,会...
火狐和IE支持javaScript脚本的一些区别
关于JavaScript的学习记录
学习html Css和Javascript的记录学习html Css和Javascript的记录 学习html Css和Javascript的记录学习html Css和Javascript的记录 学习html Css和Javascript的记录学习html Css和Javascript的记录 学习html Css和...
<script type="text/javascript" src="image/ie_png.js"> <script type="text/javascript"> ie_png.fix('.png, .menu ul li a span'); // 第二个参数为含有png的标签id(css) ie_png.fix('.png, .logo span');...
JavaScript 瀑布流 吸顶 兼容IE FF Chrome
获取IE信息的JavaScript脚本,是一个完整的html文件,直接打开就可以。
IE下面的javascript调试插件,IE WebDeveloper功能超级强大。 功能可以和火狐下的Firebug相媲美,甚至有些功能还强于Firebug IE WebDeveloper(ie下的Javascript调试工具) v2.4.1.124 附注册码
IE javascript 脚本视角解决办法
一款可以集成到IE上的javascript 插件,灰常的好用
JavaScript 导入 excel文件(兼容IE11) 示例 打包下载