`

一个比较新鲜的判断浏览器的方法

阅读更多
long long ago,在子鼠的博客上看见过一段用JavaScript来判断浏览器的方法,由于以前没有接触过JavaScript,不是很理解这段Javascript判断浏览器的原理到底是什么!

昨天晚上看《JavaScript权威指南》时,在看到XMLHttpRequest对象的时候,才突然想起用Javascript来判断浏览器的原理。下面把这段JavaScript代码贴上

<script type="text/javascript">
    if(window.XMLHttpRequest){
        //如果能直接调用XMLHttpRequest对象,则是Mozilla,Safari,IE7等现代浏览器    
        alert('Mozilla,Safari,IE7...');
        if(!window.ActiveXObject){
            //如果不支持ActiveXObject对象,则是Mozilla,Safa其它浏览器
              alert('Mozilla, Safari');
        }else{
              alert('IE7');
        }
    }else{
        alert('IE6');//如果不能直接调用XMLHttpRequest对象,那就是IE6
    }
</script>

原理:(希望对您有所启示)
在大多数现代浏览器中,当然也包括IE7,都可以用一个简单的函数来创建一个XMLHttpRequest对象,
如:var request=new XMLHttpRequest();

但是在IE5、IE6中,XMLHttpRequest只是一个Active对象,必须把对象名传递给ActiveXObject()构造函数才能创建它,
如:var request=new ActiveXObject("Msxml2.XMLHttp");


分享到:
评论

相关推荐

    浏览器缓存策略Httpwatch

    在Web应用程序的层次结构中,缓存可以存在于多个级别,如数据库缓存、持久层缓存(如Hibernate的一级和二级缓存)、业务层缓存以及浏览器缓存。浏览器缓存,即HTTP Cache,主要针对用户界面层,对提高用户体验有着...

    web浏览器-缓存详解

    3. 缓存验证:若资源可能已更新,浏览器会发送一个带有If-None-Match或If-Modified-Since头的请求到服务器,服务器根据这些头信息判断资源是否改变,若无变化则返回304 Not Modified状态码,浏览器继续使用缓存;...

    深入PHP与浏览器缓存的分析

    当浏览器首次请求一个页面时,服务器会在响应中包含`Last-Modified`头,告诉浏览器资源的最新修改时间。当浏览器再次请求同一资源时,它会在请求头中包含`If-Modified-Since`字段,值为上次接收到的`Last-Modified`...

    Asp.net 防盗链程序

    1. **检查HTTP Referrer**:大多数浏览器会在HTTP请求头中包含上一个页面的URL(Referrer),通过检查这个字段,我们可以判断请求是否来自自己的网站。但这种方法并非绝对安全,因为用户可以修改或禁用Referrer。 2...

    jsp 页面缓存

    此外,还可以使用Java的`HttpServletResponse`接口的`setLastModified()`方法来设置页面的最后修改时间,以便浏览器可以根据此时间判断是否需要从服务器获取新数据。 对于部分数据缓存,我们可能需要针对特定的组件...

    html5超级玛丽源码

    在这个项目中,开发者使用HTML5的Canvas元素来绘制游戏场景,通过JavaScript实现游戏逻辑,为用户提供一个可以在浏览器中游玩的超级玛丽游戏。 Canvas是HTML5中的一个重要特性,它是一个二维绘图API,允许开发者在...

    论坛外部链接.docx

    如使用世界之窗浏览器查看页面的PageRank(PR值),有助于判断论坛的质量和链接价值。然而,随着谷歌宣布可能取消PR值,这一建议的实用性可能会逐渐减弱,但寻找高权重平台的原则仍然适用。 总的来说,论坛外链建设...

    笑笑象棋游戏-v1.0.zip

    结合这两者,开发者创建了一个可以在网页上运行的象棋游戏,玩家无需下载安装,只需在浏览器中打开就能体验。 在JavaScript中实现象棋游戏涉及到以下几个关键点: 1. **棋盘与棋子表示**:利用数组或者其他数据结构...

    第九章:增量式爬虫_第九章:增量式爬虫_

    1. **种子页面**:增量式爬虫首先需要一个初始的种子页面集合,这些页面通常包含重要信息或链接到其他重要页面。爬虫会优先处理这些种子页面,并跟踪它们的链接。 2. **URL管理**:爬虫会维护一个URL队列,新发现的...

    简单的jquery随机美女图片瀑布流无限加载.zip

    【标题】中的“简单的jquery随机美女图片瀑布流无限加载”是一个前端开发项目,它使用了jQuery库来实现一个动态的、无限滚动的图片展示效果,通常这种效果被称为瀑布流布局。瀑布流是一种常见的网页设计模式,它使得...

    基于WEB的网络试题库系统开发

    该系统的核心功能包括数据库设计、系统管理和试题管理,它利用WEB技术将各种资源和功能整合到一个统一的平台上。 一、数据库设计 在构建网络试题库系统时,数据库设计是关键的一环。通常,这涉及到以下几个方面: 1...

    定时删除文件

    可能还会涉及到日期和时间的比较,比如根据文件的修改日期判断是否符合删除条件。 3. **用户界面**:如果这是一个图形用户界面应用,那么可能包含按钮、列表视图等控件,让用户选择文件格式、指定文件夹以及设置...

    网站设计培训.pptx

    网站设计是IT行业中至关重要的一个领域,它涵盖了视觉美学、用户体验、交互设计和技术实现等多个方面。这份名为"网站设计培训.pptx"的文件着重讨论了当前网站设计面临的问题及改进策略。 首先,文件指出,设计的...

    express.js初学者要点学习笔记.doc

    * `req.fresh` / `req.stale`:判断请否还「新鲜」 * `req.hostname` / `req.ip`:获取主机名和 IP 地址 * `req.originalUrl`:获取原始请求 URL * `req.params`:获取路由的 parameters * `req.path`:获取请求路径...

    Http请求缓冲类 , 有效降低HTTP访问频率

    - **强缓存(Freshness)**:根据HTTP响应头中的`Cache-Control`或`Expires`字段判断资源是否新鲜,如果新鲜则直接使用缓存。 - **协商缓存(Validation)**:当强缓存策略失效时,通过发送条件请求(如`If-...

    HTTP协议学习笔记之c++

    - **Last-Modified**:表示资源最后一次被修改的时间,用于判断资源的新鲜程度。 #### 五、状态码与错误处理 HTTP状态码用于表示响应的状态信息,常见的状态码包括: - **2xx**:成功状态码,表示请求已成功被...

    Movies Info RT-crx插件

    Movies Info RT-crx就是这样的一个例子,它将烂番茄的电影数据库整合到Chrome浏览器中,使得用户无需离开当前页面即可查询电影数据。 该插件支持英文界面,意味着全球的用户都可以无障碍地使用它。只需轻轻一点,...

Global site tag (gtag.js) - Google Analytics