惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
aimingoo的专栏
aimingoo的专栏
IT之家
IT之家
G
Google Developers Blog
爱范儿
爱范儿
博客园 - 司徒正美
Recent Announcements
Recent Announcements
The Register - Security
The Register - Security
J
Java Code Geeks
The Cloudflare Blog
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
宝玉的分享
宝玉的分享
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
T
Troy Hunt's Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Hacker News: Front Page
H
Help Net Security
S
Security @ Cisco Blogs
V
V2EX
Security Archives - TechRepublic
Security Archives - TechRepublic
Stack Overflow Blog
Stack Overflow Blog
O
OpenAI News
L
LINUX DO - 最新话题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Secure Thoughts
Help Net Security
Help Net Security
F
Full Disclosure
博客园 - 叶小钗
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
K
Kaspersky official blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
Scott Helme
Scott Helme

博客园 - 龍的傳人

再谈代码生成器,拥有自己最适合的代码生成器 javascript+css+xml 全选树(再续) 设表格细钱 javascript+css+xml 全选树(续) javascript+css+xml 全选树 白话CMMI 如何做好需求收集[来之《程序员》第2期] javascript、CSS、XML动太生成树菜单 - 龍的傳人 - 博客园 可选择也可填写的下拉框(用鼠标\键盘的上下键选择) - 龍的傳人 - 博客园 兼容firefox和IE的两级联动下拉菜单的javascript代码 HTML 图片分析 JavaScript - Import XML Document firefox与IE对javascript和CSS的区别(转) IE和Firefox在JavaScript方面的兼容性(转) 针对Firefox兼容性,要注意的一些问题 (转) sql2000和文本文件的写入和读取(转) [转]JS代码格式化工具(附源代码) ASP.NET2.0调用MySql的存储过程 Remote建立分析
javascript在中ie与firefox的区别与解决方案(转)
龍的傳人 · 2008-01-10 · via 博客园 - 龍的傳人

javascript在中ie与firefox的区别与解决方案

1.载入xml
ie创建对象:
    msXmlAx=new ActiveXObject("Microsoft.XMLDOM");
firefox创建对象:
     xDoc=document.implementation.createDocument("","",null);

总体方法为:
     ///判断浏览器 创建不同的对象
     function getXmlDocument()
     {
        var xDoc;
     if(document.implementation && document.implementation.createDocument)
     {
      xDoc=document.implementation.createDocument("","",null);
     }
     else if(typeof ActiveXObject !="undefined")
     {
       var msXmlAx=null;
     try{
           msXmlAx=new ActiveXObject("Microsoft.XMLDOM");  
     }
     catch(e)
     {

                    msXmlAx=new ActiveXObject ("Microsoft.XMLDOM");
     }
     xDoc=msXmlAx;
   
     }
     if(xDoc== null || typeof xDoc.load=="undefined")
     {
      xDoc=null;
   
   
     }
     return xDoc;
    
     }


2.insertRow和insertCell
在ie中可直接调用该方法 document.getElementById("xxx").insertRow();
在firefox 中需要放置参数:document.getElementById("xxx").insertRow(-1);

同样 insertRow(-1)也支持ie

3.判断浏览器类型

/*---------------------------------------------------------------
    --this function can return the actual browser name and version.--
    --USESAGE:There are Two Methods(See the end of this function) --
    --Create By Yemoo. DateTime:2006-2-3 21:53:37                 --
    ---------------------------------------------------------------*/
    function browserinfo(){
        var Browser_Name=navigator.appName;
        var Browser_Version=parseFloat(navigator.appVersion);
        var Browser_Agent=navigator.userAgent;
        
        var Actual_Version,Actual_Name;
        
        var is_IE=(Browser_Name=="Microsoft Internet Explorer");
        var is_NN=(Browser_Name=="Netscape");
        
        if(is_NN){
            //upper 5.0 need to be process,lower 5.0 return directly
            if(Browser_Version>=5.0){
                var Split_Sign=Browser_Agent.lastIndexOf("/");
                var Version=Browser_Agent.indexOf(" ",Split_Sign);
                var Bname=Browser_Agent.lastIndexOf(" ",Split_Sign);

                Actual_Version=Browser_Agent.substring(Split_Sign+1,Version);
                Actual_Name=Browser_Agent.substring(Bname+1,Split_Sign);
            }
            else{
                Actual_Version=Browser_Version;
                Actual_Name=Browser_Name;
            }
        }
        else if(is_IE){
            var Version_Start=Browser_Agent.indexOf("MSIE");
            var Version_End=Browser_Agent.indexOf(";",Version_Start);
            Actual_Version=Browser_Agent.substring(Version_Start+5,Version_End)
            Actual_Name=Browser_Name;
            
            if(Browser_Agent.indexOf("Maxthon")!=-1){
                Actual_Name+="(Maxthon)";
            }
            else if(Browser_Agent.indexOf("Opera")!=-1){
                Actual_Name="Opera";
                var tempstart=Browser_Agent.indexOf("Opera");
                var tempend=Browser_Agent.length;
                Actual_Version=Browser_Agent.substring(tempstart+6,tempend)
            }
        }
        else{
            Actual_Name="Unknown Navigator"
            Actual_Version="Unknown Version"
        }
        /*------------------------------------------------------------------------------
        --Your Can Create new properties of navigator(Acutal_Name and Actual_Version) --
        --Userage:                                                                    --
        --1,Call This Function.                                                       --
        --2,use the property Like This:navigator.Actual_Name/navigator.Actual_Version;--
        ------------------------------------------------------------------------------*/
        navigator.Actual_Name=Actual_Name;
        navigator.Actual_Version=Actual_Version;
        
        /*---------------------------------------------------------------------------
        --Or Made this a Class.                                                    --
        --Userage:                                                                 --
        --1,Create a instance of this object like this:var browser=new browserinfo;--
        --2,user this instance:browser.Version/browser.Name;                       --
        ---------------------------------------------------------------------------*/
        this.Name=Actual_Name;
        this.Version=Actual_Version;
    }
通过: navigator.Actual_Name 得到浏览器名称,navigator.Actual_Version 的到浏览器版本

4. firefox 中无法像ie一样通过documentElement得到xml文本对象的所有元素信息,可以使用替换法:
   创建XMLHttpRequest对象,通过它的responseXML返回的xml对象进行操作

5.firefox中不支持window.event
解决方法:
    document.onclick=function(e) //要兼容ff的话,这个参数一定要写上
     {
       e = window.event || e;
       e = e.srcElement || e.target;
       //其他实现代码
    }
6.firefox不支持parentElement,若要使用可写成:parentNode

7.IE中将xml通过xsl进行格式化时,使用如下代码:
   xmlDoc.transformNode(xslDoc);
   xmlDoc为xml文档
   xslDoc为xsl文档
在firefox中使用如下代码:
    var   xsltProcessor =new XSLTProcessor();  
          xsltProcessor.importStylesheet(xslDoc);
    var   resultHtml= xsltProcessor.transformToDocument(xmlDoc);
    var   oXmlSerializer = new XMLSerializer();
    $GetEle("ZfDiv_").innerHTML= oXmlSerializer.serializeToString(resultHtml);

8.ifream加载中 使iframe的高度根据所加载页的高度而改变
网上有代码为:
   <iframe onload="document.all.demo.height=document.frames['demo'].document.body.scrollHeight" src="demo.htm" />
   代码没有问题,只是在Firefox中不能实现想要的效果
   改为:
     document.getElementById('demo').height=window.frames['demo'].document.body.scrollHeight
   即可