【发布时间】:2011-09-02 08:06:01
【问题描述】:
我知道浏览器嗅探不是为多个浏览器设计网站的正确方法。然而,我的问题与设计一个对每个浏览器都表现良好的网站无关。
如果浏览器是 Google Chrome 或 Firefox 4+,我想为用户提供将网站安装为 web 应用程序的能力,如果是 Opera,则作为小部件,如果是 Safari,则作为扩展程序......等等
基本上,我想通过提供这种安装的按钮滑入一个 div。如果浏览器是 Safari,则显示 webapp 解决方案是没有用的,因为 Safari 不支持它。
那么我该如何以一种好的方式做到这一点呢?
我发现这是基于功能而不是用户代理
Safe feature-based way for detecting Google Chrome with Javascript?
var is = {
ff: window.globalStorage,
ie: document.all && !window.opera,
ie6: !window.XMLHttpRequest,
ie7: document.all && window.XMLHttpRequest && !XDomainRequest && !window.opera,
ie8: document.documentMode==8,
opera: Boolean(window.opera),
chrome: Boolean(window.chrome),
safari: window.getComputedStyle && !window.globalStorage && !window.opera
}
它似乎可以满足我的需求,而且很短,不笨重,或多或少是安全的
【问题讨论】:
-
is.safari == true 在 Chrome 中(或者我需要 Chrome 升级)。
-
你为什么要保证欺骗安全?你真的考虑过吗?人为什么会造谣?我从来不需要,但如果有人想在 Firefox 中下载你的 Opera 小部件,让他们吧,他们可能有正当理由。如果实际上是他们自己做的事情不起作用,我认为欺骗者不会抱怨。
-
那段代码有几个错误。你能更明确一点吗?您希望定位哪些浏览器版本?
-
Opera、Safari、Firefox、Chrome(最新版本)
-
下次使用@knu 我会回答你的问题。
标签: javascript browser browser-detection