首先对于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的批处理”指的是针对Internet Explorer(IE)浏览器中JavaScript功能出现问题时,使用批处理脚本来解决此类问题的技术方法。在Windows操作系统中,批处理文件(.bat)是一种文本文件,...
ie不执行javascript修复ie不执行javascript修复ie不执行javascript修复 当IE不能正常运行时,打开该工具就可以了,自动修复
IE启用javascript IE启用javascript IE启用javascript IE启用javascript IE启用javascript
JavaScript是Web开发中不可或缺的一部分,而作为曾经主流的浏览器,Internet Explorer(IE)提供了自己的JavaScript调试工具,使得开发者能够有效地追踪和解决代码中的问题。在IE的JavaScript调试工具中,有多个关键...
**知识点3:为什么在win8上使用IE6** Windows 8默认搭载的是Internet Explorer 10,一个现代化的浏览器,对现代Web标准有良好的支持。然而,有些企业或开发者可能因为特定项目或客户需求,需要在Windows 8环境下测试...
只有一个文件名"ie6sp1forwindows2000",这通常意味着压缩包包含的是一个完整的安装程序或ISO映像,用户可以用来在Windows 2000系统上安装或更新IE6到SP1版本。安装这个服务包将确保用户的系统拥有最新的安全更新和...
关于IE6测试工具的使用,开发者通常会遇到以下几点重要知识点: 1. **兼容性测试**:由于IE6的渲染引擎和现代浏览器有很大差异,开发者需要确保网站的基本功能、布局和样式在IE6下都能正常工作。这包括CSS布局、...
为了确保在这些旧版IE上运行良好,开发者通常会使用像jQuery这样的库,因为它提供了大量的兼容性封装和实用工具。同时,他们还会使用条件注释、Modernizr这样的检测库,以及专门针对IE的CSS Hack,来针对性地解决...
"数字微调input兼容IE6"这个主题涉及到的是如何在古老的Internet Explorer 6(简称IE6)浏览器上实现一个数字输入框(通常称为spinner或numeric stepper)的功能。数字微调input允许用户通过加减按钮或键盘上下箭头...
### JavaScript 图片完全固定在左右两边,兼容IE6的知识点 #### 一、问题背景与需求分析 在早期的浏览器版本中,特别是 Internet Explorer 6 (IE6),很多 CSS 特性并不支持或者存在兼容性问题。其中,“position: ...
对于IE6这类较老版本的浏览器,通过JavaScript可以有效地识别并给出提示。主要通过以下几种方式实现: 1. **User Agent检测**:通过读取浏览器发送给服务器的`navigator.userAgent`属性来判断。 2. **Conditional ...
2. **兼容性问题**:随着Web开发技术的更新换代,很多新的HTML、CSS和JavaScript特性在IE6上无法正常工作,导致网页显示不全或者功能缺失。 3. **安全性问题**:IE6存在多个已知的安全漏洞,容易被黑客利用进行恶意...
学习html Css和Javascript的记录学习html Css和Javascript的记录 学习html Css和Javascript的记录学习html Css和Javascript的记录 学习html Css和Javascript的记录学习html Css和Javascript的记录 学习html Css和...
在JavaScript中,我们可以通过监听滚动事件,当用户滚动到某个点时,改变元素的定位属性(如`position: fixed`),使其保持在屏幕顶部。 实现JavaScript瀑布流兼容IE、Firefox和Chrome的方法包括: 1. 使用条件...
这是一个JavaScript库,其目的是让旧版的IE(如IE5、IE6)的行为更接近符合Web标准的浏览器,支持更多的W3C标准,包括CSS2、CSS3选择器,并修复HTML和CSS的问题。例如: - 使IE5、IE6兼容到IE7模式:`<!--[if lt IE ...
在JavaScript中导入Excel文件,尤其是在兼容古老的Internet Explorer 11(IE11)浏览器时,需要考虑到这个浏览器并不支持现代的File API和其他先进的Web技术。本文将深入探讨如何实现这一功能,以及涉及到的关键知识...
6. **DOM操作**:IE6的DOM(文档对象模型)实现与W3C标准有差异,可能导致JavaScript脚本在其他浏览器上运行正常而在IE6上出错。 7. **网页渲染引擎Trident**:IE6采用了Trident渲染引擎,与现代浏览器使用的WebKit...
<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');...
它是一个经过改造的calendar日期控件,旨在确保在不同版本的Internet Explorer(如IE6、IE8、IE9)中能够正常运行,尽管在Google浏览器中可能未通过测试。 JavaScript日期控件是一种用户界面元素,允许用户在网页上...