`

ruby 判断客户端浏览器类型代码

阅读更多

def users_browser
user_agent =  request.env['HTTP_USER_AGENT'].downcase 
@users_browser ||= begin
  if user_agent.index('msie') && !user_agent.index('opera') && !user_agent.index('webtv')
                'ie'+user_agent[user_agent.index('msie')+5].chr
    elsif user_agent.index('gecko/')
        'gecko'
    elsif user_agent.index('opera')
        'opera'
    elsif user_agent.index('konqueror')
        'konqueror'
    elsif user_agent.index('ipod')
        'ipod'
    elsif user_agent.index('ipad')
        'ipad'
    elsif user_agent.index('iphone')
        'iphone'
    elsif user_agent.index('chrome/')
        'chrome'
    elsif user_agent.index('applewebkit/')
        'safari'
    elsif user_agent.index('googlebot/')
        'googlebot'
    elsif user_agent.index('msnbot')
        'msnbot'
    elsif user_agent.index('yahoo! slurp')
        'yahoobot'
    #Everything thinks it's mozilla, so this goes last
    elsif user_agent.index('mozilla/')
        'gecko'
    else
        'unknown'
    end
    end

    return @users_browser
end


see: http://stackoverflow.com/questions/4707400/rails-browser-detection-methods
分享到:
评论

相关推荐

    webdriver编程入门

    6. **接收和分析响应**:客户端接收响应,根据返回值判断是否继续执行测试脚本的下一步。 二、实例解析 以Ruby绑定的Firefox WebDriver为例,以下代码用于打开Firefox并导航到Google首页: ```ruby driver = ...

    WEB安全漏洞入门.pdf

    4. Ruby:Ruby on Rails框架中的远程代码执行漏洞和路径穿越漏洞。 5. Node.js:Express模块存在的任意文件读取漏洞。 6. Docker:利用API和SSRF漏洞进行UNIX Socket通信,进行文件读取。 五、客户端安全 客户端...

    FT自动测试工具的介绍

    A)通过 Selenium IDE 生成的测试代码怎么在 Selenium RC 上有效的配置并运行,这个步骤很重要的,因为目前的 Selenium IDE 不支持 IE,只能生成的代码通过 Core 手工执行或基于 Selenium RC 放入 Java、Ruby 的单元...

    Sass全面解析.pdf

    通过工具如Koala编译器,开发者可以将Sass代码编译成标准CSS,从而在不同的浏览器中实现兼容显示。 Sass的继承机制可以理解为选择器之间的组合,通过继承可以复用同一套样式规则。使用继承可以减少CSS代码量,让...

    学习CSS预处理器:Sass和less进行对比

    而Less则依赖JavaScript,可以通过客户端或服务器端(使用Node.js)的编译器如less.js或Gulp、Webpack的插件进行编译。 在CSS3的支持方面,两者都能帮助简化跨浏览器兼容性问题,特别是处理前缀。然而,Sass在这...

    selenium学习资料

    - **编程语言支持**:Selenium RC 提供了针对 Java、C#、Python、Ruby 等多种语言的客户端库,每种语言都有专门的 API 接口用于执行 Selenese 命令。 - **API 使用**:通过客户端库的 API 可以编写简单的 Selenium ...

    java开源包4

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    4.3 Bootstrap-实现原理.pdf

    最后,Bootstrap 还需要考虑浏览器的兼容性问题,通过 CSS 的前缀、JavaScript 的兼容性代码,以及一些 Polyfill 来确保 Bootstrap 能够在不同版本的浏览器中正常工作。 总结来说,Bootstrap 的实现原理涉及到了 ...

    site du zero Concevez votre site web avec PHP et MySQL

    - **客户端-服务器模型**:用户通过浏览器向服务器发送请求,服务器处理请求并返回结果给用户。 #### 3. 网站开发语言 - **HTML**(超文本标记语言):用于定义网页结构的基础语言。 - **CSS**(层叠样式表):用于...

    apple_is_dead.rb:苹果のサービスの生死をコミットします

    1. **Ruby编程语言**: Ruby是一种面向对象的、动态类型的编程语言,以其简洁的语法和对开发者友好而著称。在这个场景中,它用于编写监控脚本,检查苹果服务的状态。 2. **命令行执行**: "ruby apple_is_dead.rb" ...

    tictactoe_rack:井字游戏机界面

    JavaScript是一种广泛应用于网页开发的编程语言,它允许在客户端动态更新网页内容,提供了丰富的用户交互体验。 项目运行步骤: 1. 首先,你需要解压名为“tictactoe_rack-master”的压缩包文件。 2. 在解压后的...

    防止页面被iframe(兼容IE,Firefox火狐)

    这段代码判断当前窗口是否为主窗口,如果不是,就调用父窗口的`navigate`方法,将当前页面的URL导航到父窗口,从而避免死循环的问题。这种方法在Firefox中能正常工作。 除了JavaScript,我们还可以使用服务器端编程...

    百度质量部测试开发工程师面试题整理

    常用的方法包括逻辑覆盖法(如语句覆盖、判断覆盖、条件覆盖等)、路径覆盖等。 #### 静态测试与动态测试 - **静态测试**:无需实际运行软件,而是通过审查和走查等方式对文档、代码等进行分析,目的是尽早发现...

    完成了AJAX树附原理分析

    在尝试实现AJAX树的过程中,作者最初考虑沿用之前的JavaScript函数,但这种方式实质上是在服务器端生成一串JavaScript代码,一次性返回给客户端执行,这违背了AJAX的初衷。随后,作者尝试移植.NET版的AJAX树,但由于...

    一份关于后端开发框架的大纲教程!!!!!

    - **Ruby on Rails**:遵循“约定优于配置”的理念,快速开发并自动处理常见问题。 ### 搭建开发环境 #### 四、安装和配置开发环境 - **语言解释器/编译器**:例如Node.js、Python解释器等。 - **包管理工具**:...

    phoenix_etag:对phoenix的ETag支持

    客户端(如浏览器)在后续请求相同资源时,会将之前的ETag值发送回服务器,服务器通过比较新旧ETag判断资源是否已更新,从而决定是否需要重新发送整个响应。 在Phoenix框架中,`phoenix_etag`库提供了集成ETag机制...

    Nginx模块参考手册中文版.pdf

    集成uWSGI协议,支持Python、Ruby等动态语言的应用。 #### 3.25 SplitClients模块(SplitClients) 根据客户端特征将流量分流至不同后端服务器。 ### 四、Nginx可选HTTP模块(Optional HTTP Modules) 这一类...

    【React框架】教程&案例&相关项目

    - **实现页面路由**:React Router是一个用于实现客户端路由的库,可以方便地在SPA中实现页面跳转。 - **生命周期方法**: - **类组件的生命周期**:分为挂载阶段、更新阶段和卸载阶段。 - **函数组件的Hook**:...

    Knockout API 中文版

    纯JavaScript类库 – 兼容任何服务器端和客户端技术 Pure JavaScript library - works with any server or client-side technology 可添加到Web程序最上部 – 不需要大的架构改变 Can be added on top of your ...

    用HTML5CSS3实现媲美原生应用的交互体验_尤雨溪

    传统的网页设计往往受限于浏览器的能力,无法提供与原生应用相媲美的交互体验。然而,在尤雨溪的演讲中,他分享了一系列方法和技术,通过这些手段,我们可以使用HTML5和CSS3来打造与原生应用相似甚至更佳的用户体验...

Global site tag (gtag.js) - Google Analytics