我一直在搜索有关内置微信浏览器生成的用户代理字符串的某种文档。
我进行了很多非常特定的浏览器检测,但找不到与微信传递给网站的UA字符串远程相关的任何内容。
这将遵循以下思路:
Mozilla / 5.0(iPhone; CPU OS 6_0,例如Mac OS X)AppleWebKit / 536.26(KHTML,例如Gecko)版本/6.0 Mobile / 10A5355d Safari / 8536.25
有谁知道有没有办法区分iOS上的Safari和iOS上的微信内置浏览器?(或者甚至有可能)
任何建议将不胜感激!
我在PHP 文档中找到了代码。这似乎是一个很好且简单的代码,它可以检测谷歌浏览器、火狐浏览器、IE 和 safari,但无法检测 Opera。
OUTPUT in OPERA:
Your browser: Google Chrome 45.0.2454.93 on windows reports:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36 OPR/32.0.1948.69
Run Code Online (Sandbox Code Playgroud)
需要帮助修改此代码,以便它可以检测歌剧。
<?php
function getBrowser()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$bname = 'Unknown';
$platform = 'Unknown';
$version= "";
//First get the platform?
if (preg_match('/linux/i', $u_agent)) {
$platform = 'linux';
}
elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
$platform = 'mac';
}
elseif (preg_match('/windows|win32/i', $u_agent)) {
$platform = 'windows';
}
// Next get the name …Run Code Online (Sandbox Code Playgroud) 我需要根据每个浏览器更改一个值,因为它们都以不同的方式呈现.
if (navigator.appName == 'Netscape'){
top = 17;
}
Run Code Online (Sandbox Code Playgroud)
这很有效但不幸的是Firefox和Safari都显示为"Netscape"
我如何使用jQuery 1.3.2来检测所有这些?我jquery.support现在找不到任何信息jquery.browser.
谢谢!
我正在开发一个将在几个不同的上下文中使用的网页,虽然我通常不惜一切代价避免浏览器嗅探和条件语句,但这次没有办法解决它.
我正在尝试一种简单的方法,我希望能得到一些关于这是否是个好主意的反馈.
我正在测试用户代理,然后如果用户代理是IE,则在html(在我的例子中是div)中的元素上回显类.
<?php echo (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'msie') !== FALSE) ? ('classforie') : (''); ?>
Run Code Online (Sandbox Code Playgroud)
然后在我的CSS中,我正在做一些与此相关的事情;
.classone { display: inline-block; }
.classone.classforie { zoom: 1; display: inline; }
Run Code Online (Sandbox Code Playgroud)
注意,CSS不是重要的部分,我只是为了举例说明了这一点.我只是想知道这样做是否是一种好的做法?
是否有可靠的方法来检测iPhone 4(而不是iPhone 3或iPad)?如果你可以使用.browser文件或WURFL来加分
所以我正在运行jQuery 1.3.2(是的,它已经很久了,现在我无法升级).
问题是我正在尝试放弃对我们内部站点的IE6支持并升级浏览器.我有这张支票
if($.browser.msie && $.browser.version=="6.0") {
// do something...
}
Run Code Online (Sandbox Code Playgroud)
但在测试期间(某些),Firefox用户正在看到这种do something情况而且不应该.以下是我认为可能导致该问题的一些用户代理.
我需要更多的IE6验证吗?
注意:最终用户没有安装附加组件.我认为像IE-Tabs这样的问题可能导致问题,但事实并非如此
更新:
下面的所有回复都引导我这个,仍在测试,但它看起来不错.关于如何改进它的任何问题?
var ie6 = $.browser.msie && parseInt($.browser.version) === 6 && typeof window['XMLHttpRequest'] !== "object";
if(typeof document.body.style.maxHeight === "undefined" && ie6) {
alert('Your browser is IE6');
}
Run Code Online (Sandbox Code Playgroud)
相关问题:
是否可以使用ruby/rails检测iPad 3(又称新iPad)?如果是这样,我该怎么做呢?
我们对某些Internet Explorer版本有一些奇怪的问题,所以我们有一个浏览器开关
<head>
<!--[if IE 6]>
<!-- load some IE6 stuff -->
<meta http-equiv="X-UA-Compatible" content="IE=6" />
<![endif]-->
<!--[if IE 7]>
<!-- load some IE7 stuff -->
<meta http-equiv="X-UA-Compatible" content="IE=6" />
<![endif]-->
<!--[if IE 8]>
<!-- load some IE8 stuff -->
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<![endif]-->
<!--[if IE 9]>
<!-- load some IE9 stuff -->
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<![endif]-->
</head>
Run Code Online (Sandbox Code Playgroud)
如果我像这样加载它,我在IE9 Developer附加组件中看到:
HTML1115:与X-UA兼容的META-Tag("IE = 8")被忽略,因为documentmodus已经加载.
(最初是德语,所以我应该翻译)
并且文档模式仍然是IE9
如果我在我的<head>标签中写得很难:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Run Code Online (Sandbox Code Playgroud)
IE9将作为IE8加载,所以这可行,但那时IE6的东西当然是错误的....
那么有没有办法像我第一次尝试那样做?
internet-explorer browser-detection internet-explorer-9 x-ua-compatible
我想在我的网站上添加一个条件,如果浏览器来自iPhone/iPad,有一些特定的行为,比如单击一个按钮来显示div.
就像是 :
<script type="text/javascript">
/* iPhone scripts */
<?php if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod')){ ?>
// window.addEventListener("load",function() {
// setTimeout(function(){
// window.scrollTo(0, 1);
// }, 0);
// });
jQuery(document).ready(function() {
}
});
Run Code Online (Sandbox Code Playgroud)
这正是我发现的,但我不确定这是怎么做的.
我想知道,目前检测平板电脑和智能手机的最佳方法是什么?
插件,用户代理检测,触摸屏检测等
谢谢