在写脚本的过程,有以下几个大的 BUG ,害我找答案找了 N 久。现把它写出来,希望大家少走点弯路。
注: IE 6.0 以下版本会出现, 7.0 没测试过
一、文本转换成数字,parseInt 在 IE 中有一个严重的 BUG
alert(parseInt("8")) → 执行结果为 0
解决方法:改成 parseFloat("8").toFixed(0) → 保留小数点后 0 位数,即整数
二、document.getElementById 的方法执行有误
document.all 在其它浏览器中不支持,所以我用的最多的是 document.getElementById。但是我发现,当控件的 ID 与名称相同的时候,document.getElementById 就出现错误了。例如:
<input id="Txt_Name01" name="Txt_Name">
<input id="Txt_Name" name="Txt_Name">
alert(document.getElementById("Txt_Name").id) 执行结果是 "Txt_Name01"
以此推断:document.getElementById 在 IE 中,先以 name 由上而下进行查找,没有找到控件的时候才以 id 进行查找。
解决方法,用另一方法代替。
document.getObjectById = function(id)
{
if(document.all)
{
var obj = document.getElementById(id);
if(obj == null){return null;}
if(obj.id == id){return obj;}
obj = document.getElementsByName(id);
for(var i=0;i< obj.length;i++)
{
if(obj[i].id == id){return obj[i];}
}
return null;
}
else{return document.getElementById(id);}
}
三、 通过 select 节点的 innerHTML 设置下拉节点无效
当两个 select 下拉框需要进行复制时,一个最快捷的方式就是用 innerHTML ,但 IE 的 BUG 却让我无话可说。例如:把 DDL_Dept 的下拉节点复制到 DDL_Dept02
<select id="DDL_Dept">
<option>01</option>
<option>02</option>
</select>
<select id="DDL_Dept02" style="width:20px">
<option>03</option>
</select>
function CloneNode()
{
var d1=document.getElementById("DDL_Dept");
var d2=document.getElementById("DDL_Dept02");
//d2.innerHTML = d1.innerHTML; 此句应该是最快的,但无效,只好变通一下了
d2.innerHTML =""; //这句却是可以的,真是无语
var re = /(<\/SELECT>)/gi;
var t = d2.outerHTML.replace( re ,""); //先去掉</SELECT>
d2.outerHTML = ot + d1.innerHTML+"</SELECT>";//再加上组合好的内容
}
以上代码只在 IE 内核的浏览器出现,FireFox 没有上述问题
转自:http://blog.csdn.net/cityhunter172/archive/2009/02/04/3862009.aspx
分享到:
相关推荐
总的来说,N氧化碳浏览器2.1作为一款基于Webbrowser控件的第三方浏览器,虽然具备基本的浏览功能,但其存在的多个BUG表明它可能不那么适合对性能和稳定性有高要求的用户。开发者应关注并修复这些BUG,提升用户体验。...
以下是几个例子及解决办法: 1. 浏览器默认的 margin 和 padding 不一致。为了解决这个问题,可以在全局样式中添加 `* {margin: 0; padding: 0;}` 来统一所有元素的外边距和内边距。 2. IE6 的双边距 Bug。当浮动...
浏览器工作原理可以分为以下几个步骤: 1. 输入域名地址 2. 发送至DNS服务器并获得域名对应的WEB服务器IP地址 3. 与WEB服务器建立TCP连接 4. 服务器的永久重定向响应 5. 浏览器跟踪重定向地址 6. 服务器处理请求 7....
在实际应用中,使用"jq仿滚动条"插件通常包括以下几个步骤: 1. 引入jQuery库和滚动条插件的JavaScript文件。 2. 在CSS中定义滚动条的样式,利用插件提供的类名进行定制。 3. 使用JavaScript初始化插件,通常是在...
2. 浏览器测试:IE、Firefox、Chrome、Opera 等浏览器的内核分别是 IE 内核、Gecko、Webkit、Presto 等。 3. IE6 BUG 的解决方法:双边距 BUG、3 像素问题、超链接 hover 点击后失效等。 其他 1. 标签上 title 与 ...
典型的结构包括一个容器元素和几个图片元素。在这个例子中,我们有一个ID为`box`的容器,内部包含了多个`img`标签,每个`img`代表一个要显示的图片。同时,还有两个用于切换图片的按钮,分别设置为`left`和`right`。...
Chrome 32.0.1700.76包含以下几个bug修复和体验提升: 1、在音频、视频、摄像头等标签上展示对应的图标; 2、Win8 Metro模式的新形象; 3、自动阻止恶意软件; 4、提供一些新的app或扩展的API; 5、更多高级...
服务器:Windows 2000及IIS5.0以上,需要ADO数据库、FSO、XMLDOM等系统组件支持和空间的读写权限,具体请查询网络服务商或查看本机配置。客户端:支持Mozilla FireFox 1.0、IE6.0、...10、增加了几个UBB代码的支持;