今天发现有些脚本在IE里和360安全浏览器、腾讯TT等使用IE内核的浏览器有一些细微区别故,想知道如何判断使用了IE内核的浏览器比如应用程序嵌入WebBrowser, 腾讯TT、360、世界之窗这些
JS的必须,枚举的不要

解决方案 »

  1.   

    <script language="javascript" type="text/javascript">
    function isIE(){
    if(document.all){
    return true;   //Microsoft IE6.0 7.0
    }else if(document.getElementById){
    return false;   //Mozilla Firefox,opera,Apple safari,Google chrome
    }
    }
    alert("是IE吗?"+isIE());
    </script>
      

  2.   

    上面回答,不太准确。用下面这个较好<script language="javascript" type="text/javascript">
    function isIE(){
    if (!document.addEventListener ){
    return true;   //IE内核
    }else {
    return false;   //Mozilla Firefox,opera,Apple safari,Google chrome
    }
    }
    alert("是IE吗?"+isIE());
    </script>
      

  3.   

    <script language="javascript" type="text/javascript">
    function isIE(){
    //IE内核
    if (document.attachEvent) { return true;}
    //Mozilla Firefox,opera,Apple safari,Google chrome
    if (document.addEventListener){ return false;}
    //其它,管它什么
    return false;
    }
    alert("是IE吗?"+isIE());
    </script>
      

  4.   

    各位看清问题哦既要是IE内核,还要排除IE浏览器程序
      

  5.   

    试试分析navigator.userAgent里面的信息
      

  6.   

    曾经一个很牛的本版帖子。看一下吧:
    http://topic.csdn.net/u/20100524/14/4a6c9b82-5db2-432c-b99c-e6fea6b21e02.html?35984
      

  7.   


    var userAgent = navigator.userAgent.toLowerCase();   
    /msie/.test( userAgent ) && !/opera/.test( userAgent );
      

  8.   

    这个真不好区分,很多IE内核浏览器都没有更新userAgent。如果是具有本地安全级别的脚本,可以通过当前进程的安装路径来区分。
      

  9.   

    什么变态不变态一个函数轻松搞定:function navigatorVer(){
            var  Sys = {};   
            var  ua = navigator.userAgent.toLowerCase();   
            if  (window.ActiveXObject)   
                Sys.ie = ua.match(/msie ([\d.]+)/)[1]   
            else   if  (document.getBoxObjectFor)   
                Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]   
            else   if  (window.MessageEvent && !document.getBoxObjectFor)   
                Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]   
            else   if  (window.opera)   
                Sys.opera = ua.match(/opera.([\d.]+)/)[1]   
            else   if  (window.openDatabase)   
                Sys.safari = ua.match(/version\/([\d.]+)/)[1];   
               
            //打印测试结果 
             if (Sys.ie) document.write( 'IE ' +Sys.ie);   
            if (Sys.firefox) document.write( 'Firefox ' +Sys.firefox);   
            if (Sys.chrome) document.write( 'Chrome ' +Sys.chrome);   
            if (Sys.opera) document.write( 'Opera ' +Sys.opera);   
            if (Sys.safari) document.write( 'Safari ' +Sys.safari); 
    }
      

  10.   

    楼上的请看清问题
    真奇怪,我的描述很晦涩难懂吗?只有zswang看得懂
      

  11.   

    确实很难懂,我也是看到#4才明白的,而我也确实记得以前看见过tt和maxthon会附加自己的ua另外刚才测试了一下(目前的最新正式版),虽然不是所有浏览器都会附加自己的ua,但在几种测试过的浏览器中,theworld tt 360均能直接通过ua区别,sogou可以通过服务端程序区别,maxthon没有任何ua(不清楚是新版没了还是可以设置或者是我把这些浏览器都一起装的问题,以前的版本是有的)还是能区别一部分的,lz能否亲自动手实验一下再来下结论,这里我就不把具体结果贴出来了
      

  12.   

    楼上的,那还是枚举法啊,这个枚举不过来的,各种各样的IE内核浏览器太多了
    我也可以用delphi,窗体里嵌一个WebBrowser