在写脚本的过程,有以下几个大的 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
分享到:
相关推荐
3. **跨内核支持**:插件的目的是实现跨内核的兼容性,这通常涉及到对ActiveX对象的重新实现或者在非IE浏览器中创建一个代理对象,使得调用ActiveX控件的JavaScript代码能在非IE内核环境中运行。 4. **安全问题**:...
`javax.script`包则提供了脚本引擎接口,可以执行JavaScript代码,间接与ActiveX控件交互。 4. **安全性与限制:** 使用ActiveX控件存在安全风险,因为它可以访问系统资源,容易成为恶意软件的入口。因此,Java...
标题中的“一个利用 IE 内核自己写的 Web 浏览器的例子”指的是开发人员使用 Internet Explorer(IE)的浏览技术,即 Trident 渲染引擎,创建了一个自定义的 Web 浏览器。这个项目展示了如何在非标准浏览器环境中...
- **Webkit or JWebBrowser**: 虽然标题提到是基于IE内核,但考虑到IE的逐渐淘汰,开发者也可能选择使用像Webkit这样的开源渲染引擎,或者使用Java的JWebBrowser库,它提供了一个与IE兼容的Java组件。 2. IE内核...
JavaScript内核系列是一份深入探讨JavaScript编程语言及其内核的宝贵资源,对于正在学习或从事JavaScript开发的学生和程序员来说,它提供了丰富的知识和技术指导。这份资料详细阐述了JavaScript的各个方面,包括语法...
总的来说,基于IE内核的浏览器在特定环境下仍具有其价值,尤其是对于需要与旧有系统兼容的场景。同时,源码的开放性为开发者提供了宝贵的资源,推动了浏览器技术的不断进化。然而,面对新时代的挑战,如何在保持兼容...
在本项目中,我们将探讨如何使用MFC(Microsoft Foundation Classes)库来构建一个基于IE内核的浏览器。 MFC是微软提供的一套C++类库,它简化了Windows应用程序的开发,包括用户界面、文件处理和网络通信等方面。在...
谷歌浏览器切换IE内核插件,有些时候需要在谷歌浏览器里面打开一些只有IE才能打开的插件,列如老版本的weboffice等时可以切换IE内核
本文将深入探讨如何使用Visual C++(VC++)开发一个基于Internet Explorer(IE)内核的浏览器。这涉及到的知识点包括C++编程、Windows API调用、COM组件以及对IE内核的接口利用。 首先,`MyBrowser`系列源文件是...
在C#中实现一个基于IE内核的简单浏览器涉及到多个关键知识点,主要集中在Windows Forms应用程序开发、WebBrowser控件的使用以及用户界面交互等方面。以下是对这些知识点的详细阐述: 1. **Windows Forms应用程序...
### Google浏览器添加IE内核教程:提升浏览兼容性与便捷性 #### 一、引言 随着互联网技术的不断进步,浏览器作为用户访问网络的重要工具,其功能与性能的优化日益受到重视。Google浏览器(Chrome)凭借其快速、...
标题中的“在谷歌浏览器上安装ie内核”指的是在Google Chrome浏览器中添加一个扩展程序,以便模拟Internet Explorer(IE)浏览器的行为。这是因为某些网站或应用可能仅与IE内核兼容,而不支持基于Chromium的Chrome。...
滴滴ie内核
非IE内核浏览器的ActiveX支持插件通常会采用以下几种方法来解决这个问题: 1. **模拟环境**:插件创建一个虚拟的IE环境,在这个环境中运行ActiveX控件。这种方式能够确保大部分ActiveX控件的功能,但可能因为性能...
对于这个仿谷歌界面的IE内核浏览器,其开发者可能面临一些挑战,比如如何在IE内核的基础上实现与Chromium类似的用户体验,以及如何优化单一进程架构以减少卡顿。同时,由于IE内核的更新速度较慢,可能存在安全漏洞和...
总之,“非ie内核浏览器activex支持插件安装包”是一个解决非IE浏览器与ActiveX不兼容问题的工具,它通过特殊的技术手段实现了ActiveX在现代浏览器中的运行,但用户在使用时需谨慎处理安全问题,并留意技术发展的...
本主题涉及的是如何利用C#构建一个基于IE(Internet Explorer)内核的简单浏览器程序。首先,我们需要理解IE内核的工作原理,然后探讨如何在C#环境下集成这个内核。 IE内核,也称为Trident渲染引擎,是由微软开发的...
标题“IE Tab Chrome 插件,切换IE内核”揭示了本文将要讨论的是一个名为“IE Tab”的Chrome浏览器插件,其主要功能是允许用户在Chrome浏览器中以Internet Explorer(IE)内核模式浏览网页。这对于那些仍然需要使用...
然而,这个控件默认可能会使用过时的或者非系统的IE(Internet Explorer)内核,导致与现代网页标准不兼容。 标题"让软件支持系统IE内核.rar"所指的,就是解决这个问题的一个小工具。这个工具简化了设置过程,使得...
很简单的一个IE内核的浏览器,支持所有win系统(32位与64位上都运行成功),主页设置为百度,不能修改,永不弹窗,没有收藏夹,所有网址都要手动输入。 虽然简单,但有的场合很好用,试试你就知道,因为小,所以速度...