标签: browser-detection

网站语言:使用浏览器区域设置或IP地址

对于一个网站,我们即将实施自动国家/语言选择,但仍然允许用户选择更改它.

首先,如果用户使用具有国家级TLD的域进入网站,则默认情况下将显示正确的语言.但问题是,如果它们来自通用/国际顶级域名(如.com),逻辑应该是什么.我们是否应该更喜欢使用我们通过其IP地址获取的国家/或者我们应该使用其浏览器区域设置?如果两者都在,按顺序排列?

因此,我在想这个层次结构:

  1. 如果之前已更改,请使用用户选择.如果用户从未明确设置过:
  2. 使用主机名TLD.如果它是通用的(.com):
  3. 使用浏览器区域设置.如果没有为此语言环境设置语言环境或没有相应的语言版本:
  4. 使用IP地址.如果检测到的国家/地区没有相应的语言版本:
  5. 用英语.

谢谢!

country localization browser-detection

7
推荐指数
4
解决办法
5952
查看次数

查找浏览器类型和版本?

任何人都知道使用JavaScript/jQuery查找客户端上安装的浏览器的类型和版本的好方法吗?

看起来jQuery有一些内置函数,但它在检测Chrome时遇到了问题.这样做还有其他可靠的方法吗?

jquery browser-detection

7
推荐指数
2
解决办法
3万
查看次数

检查是否支持html元素

如何检查是否支持html元素,例如datalist?MDC表示它仅在Opera和FireFox中被推销.

html javascript browser-detection

7
推荐指数
1
解决办法
2252
查看次数

(Javascript)所有浏览器的"navigator.appName"值列表?

navigator.appName为所有常见浏览器的值返回什么值?

navigator.appNameFirefox 的价值是Netscape.

为IE,Firefox,谷歌Chrome,Safari,Opera,Flock等返回什么值?

javascript browser browser-detection navigator

7
推荐指数
2
解决办法
2万
查看次数

使用javascript检测手机/平板电脑/网络客户端

我试图检测最终用户是在手机,平板电脑还是个人电脑上

我已经谷歌搜索了一段时间,显然没有简单的解决方案.

好吧,我想我不应该使用Resolution,因为现在有些平板电脑具有惊人的分辨率.

我不应该依赖方向,因为windows8笔记本电脑可以像平板电脑一样旋转.(响应式设计对我目前的项目来说太难了)

我一直在尝试使用UserAgent(认为它也有它的缺点),但是无法让它工作,下面是我用来区分手机/平板电脑和PC的不同版本的联合,他们只是不工作和我不知道为什么

var agents = ['android', 'webos', 'iphone', 'ipad', 'blackberry','iemobile','phone','mobile'];
                for(i in agents) {
                    if(navigator.userAgent.toLowerCase().match('/'+agents[i]+'/i')) {
                        return true;
                    }
                }


if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
                return true;
            }

 if( navigator.userAgent.match(/Android/i)
                 || navigator.userAgent.match(/webOS/i)
                 || navigator.userAgent.match(/iPhone/i)
                 || navigator.userAgent.match(/iPad/i)
                 || navigator.userAgent.match(/iPod/i)
                 || navigator.userAgent.match(/BlackBerry/i)
                 || navigator.userAgent.match(/Windows Phone/i)
                 || navigator.userAgent.match(/bada/i)
                 || navigator.userAgent.match(/Bada/i)
                 ){
                return true;
            }
Run Code Online (Sandbox Code Playgroud)

javascript browser-detection device-detection

7
推荐指数
1
解决办法
2万
查看次数

检测浏览器是否已具有平滑滚动功能

我点击哈希链接时使用这段JavaScript添加了平滑滚动到我的网站.

$('a[href*=#]')
    .click(onAnchorClick);

function onAnchorClick(event)
{
    return ! scrollTo(this.hash);
}


function scrollTo(target)
{
    var e = $(target);
    var y = e.exists() ? e.offset().top : 0;

    if(y == 0 && target != '#top')
        return false;

    if(Math.max($('html').scrollTop(), $('body').scrollTop()) != y)
        $('html,body')
            .animate({scrollTop: y}, 500, function() { location.hash = target; } );
    else
        location.hash = target;

    return true;
}

$.fn.exists = function()
{
    return this.length > 0 ? this : false;
}
Run Code Online (Sandbox Code Playgroud)

在桌面浏览器中运行非常棒,并且至少在iOS设备上也可以正常工作.但是,在我的WinPhone 8设备上它是垃圾.滚动是一团糟,甚至没有结束它应该的地方.所以我决定不通过它启用它if( ! /Windows Phone 8\.0/.test(navigator.userAgent)).

现在它运行良好,并且看起来WinPhone上的浏览器实际上默认是平滑滚动,这很棒.

但是,如果浏览器默认情况下已经执行此操作,则平滑的滚动脚本处于活动状态当然有点愚蠢.有没有办法可以检测浏览器是否已启用平滑滚动功能?

javascript browser cross-browser browser-detection

7
推荐指数
2
解决办法
1048
查看次数

Request.Browser.Platform不返回iPad,OSX或Windows7

我正在进行一些高级浏览器检测,我从CodePlex 下载了MDBF浏览器文件.

不幸的是,我的Request.Browser.Platform以及其他一些东西在我的iPad Mac OSX(Snow Leopard)和Windows7上都返回"Unknown"

有没有人知道一个好的高级.browser文件,对于非移动设备做同样的事情,就像MDBF对移动设备一样?

asp.net browser-detection

6
推荐指数
1
解决办法
9281
查看次数

谷歌Chrome嵌入式框阴影错误在Windows上,而不是在Mac上:更好的解决方法?

这仍然是Chrome 5.0.375.125的最新版本,这是撰写本文时的最新Windows版本.

此处会跟踪错误:http: //code.google.com/p/chromium/issues/detail?id = 25334

所以,问题是,如果您使用的是Windows或Linux,并且有人在也具有border-radius的元素上使用了插入框阴影,则会出现错误 - 边框半径被保留,但插入框 - 阴影溢出来,好像它仍然是一个方盒子.它在Mac OS X上的Chrome中按预期工作.

使用纹理背景的人不能使用这种黑客,因为它需要不透明的边框颜色.它也只适用于较小的半径.

这个黑客的两个部分.一个小Javascript(jQuery + jQuery.client插件):

if ($.client.browser == "Chrome" && $.client.os != "Mac"){
  $('html').addClass("inset-radius-hack");
};
Run Code Online (Sandbox Code Playgroud)

和CSS

#div{
  -moz-border-radius: 7px;
  -webkit-border-radius: 7px;
  border-radius: 7px;
  -moz-box-shadow: rgba(0, 0, 0, 0.4) 1px 1px 4px 0 inset;
  -webkit-box-shadow: rgba(0, 0, 0, 0.4) 1px 1px 4px 0 inset;
  box-shadow: rgba(0, 0, 0, 0.4) 1px 1px 4px 0 inset;
  padding: 5px 10px;
  margin-bottom: 10px;
  max-width: 120px;
}

  html.inset-radius-hack #div {
    border: 2px …
Run Code Online (Sandbox Code Playgroud)

css jquery google-chrome browser-detection

6
推荐指数
1
解决办法
1788
查看次数

jQuery - 检测操作系统和操作系统版本

我过去几个月一直在为我的公司编写用户脚本,并且刚刚为我的公司设计了主要网站的安装说明(我们的员工遍布世界各地,很少有人听说过用户脚本,更不用说使用它们了,所以这个前端意味着减少我花在支持脚本上的时间).

我想要做的是,在安装页面上,检测他们正在使用哪个浏览器和OS/OS版本,以便我可以突出显示比其余部分稍暗的最相关指令,或者根本不显示不相关的部分.

例如,对于IE6,您必须使用Trixie(我相信)来安装用户脚本,这仅在Win XP上受支持.Win XP支持IE7,Win XP和Win 7支持IE8,Win 7仅支持IE9.对于IE7,8和9我建议使用IEPro.Trixie和IEPro之间的区别在于Trixie需要.user.js的文件扩展名,必须保存在C:/ Program Files/bhelpuri中.另一方面,IEPro要求扩展名为.ieuser并保存到其他位置.对于IE专门,我想检测版本并只显示正确的链接(.user.js或.ieuser,取决于他们应该为他们当前的浏览器使用什么插件),以便它们被带到正确的版本该浏览器的文件,具有该OS/OS版本的正确保存路径.到目前为止,这有什么意义吗?

基本上我的问题是,有没有人知道检测操作系统版本的方法?我目前正在使用http://www.stoimen.com/blog/2009/07/04/jquery-os-detection/,但这不提供操作系统版本,只提供操作系统.我已经尝试循环遍历导航器对象中存储的所有变量但没有成功.任何帮助将不胜感激.

编辑:感谢Nates的回答,我已将确切的代码放在http://jsfiddle.net/Mu8r5/1/上.我希望这可以帮助将来的某个人.

javascript jquery browser-detection

6
推荐指数
2
解决办法
3万
查看次数

我需要一种简单的方法来使用jquery检测CSS3媒体查询支持

我需要一种快速而肮脏的方法来使用jquery检测媒体查询支持.我定义了一个函数如下:

function mediaQueriesEnabled () {
   var v = parseFloat($.browser.version);
   if ($.browser.msie) {
      if (v < 9)
         return (false);
   }
   return (true);
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?看这个页面:

http://caniuse.com/css-mediaqueries

我意识到这里有一些复杂性.例如,当我测试我的safari版本时,我得到"534.57.2".我现在想避免安装modernizr,主要是因为我处于紧张状态,我需要在短期内处理大多数情况.任何帮助表示赞赏!

jquery browser-detection css3 media-queries

6
推荐指数
2
解决办法
3701
查看次数