求一段js 判断设备跳转网页的代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一段js 判断设备跳转网页的代码相关的知识,希望对你有一定的参考价值。

一个网站要求 pc,安卓,iphone访问同一个域名到3个不同的网页,很多网站都具备这种功能,求这段代码

一般来说,你这个需求不难办到。思路无非两条,检测UA以及特性检测。

这两种方法可以说各有利弊。


UA检测来说,比较简单、准确、适用面广并且易扩充。

navigator.userAgent.match(/android/i)  // 判断是否是Android设备
navigator.userAgent.match(/iPhone|iPad|iPod/i)  // 判断是否为ios设备

通过以上的操作就可以很方便的检测用户使用的是什么设备。并且一次类推,几乎可以判断所有的浏览器。

不过UA检测的缺陷也是非常明显的,就是无法判断伪装的浏览器。大部分浏览器都会修改自己的UA,以适配更多的网站,甚至很多移动端的浏览器还支持自定义UA。所以使用UA检测准确,但不一定正确。


另外就是特性检测,特性检测顾名思义,是通过用户浏览器拥有的特性来检测,例如说判断浏览器是否支持某些内置方法来进行判断,或者通过浏览器的怪癖(例如说有些低版本的IE会在解析某些设置时显得跟别人颇为不同)来进行判断。

他的优势是可以真正的检测到浏览器的类型,识破伪装。

不过劣势是非常明显的,就是比较繁琐,并且很麻烦,浏览器版本升级后可能就失效了。


所以建议你使用UA检测或者jQuery Migrate之类的插件。

追问

我需要的是判定设备而不是浏览器,主要判定的就是 iphone ipad 和安桌
我找到一段这样的

居然发布出来,超过最大字数。。。什么玩意儿

追答

明确一点,JS是运行在浏览器中的,他无法超出浏览器,所以JS只能判断浏览器的特性。
至于UA中的内容,是浏览器生成的,一般情况下,浏览器会在UA中添加相应的操作系统信息。
所以对设备或者系统的判断,其实还是基于对浏览器的判断。

追问

UA是什么东西,是一种语言工具么?可否像js一样直接放入网页中使用,麻烦给我一段代码,具体内容为

判定设备为 安卓手机,安卓平板,pc,iphone,ipad
判定后页面跳转到 xxxx

参考技术A

一般是通过获取useragent来判断是什么设备来访问的页面

我这边有个dz里面的php函数,你可以相应的改变下弄成js的


function checkmobile() 
static $mobilebrowser_list =array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung',
'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser',
'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource',
'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui', 'smartphone',
'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portalmmm', 'jig browser', 'hiptop',
'benq', 'haier', '^lct', '320x320', '240x320', '176x220');
$pad_list = array('pad', 'gt-p1000');
$useragent = strtolower(isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'');
$useragent=str_ireplace('coolpad','',$useragent);
if(dstrpos($useragent, $pad_list)) 
return false;

if(dstrpos($useragent, $mobilebrowser_list)) 
return true;

return false;


function dstrpos($string, &$arr, $returnvalue = false) 
if(empty($string)) return false;
foreach((array)$arr as $v) 
if(strpos($string, $v) !== false) 
$return = $returnvalue ? $v : true;
return $return;


return false;

参考技术B var userAgentInfo = navigator.userAgent;
var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");
var flag = false;
var v=0
for ( v = 0; v < Agents.length; v++)

if (userAgentInfo.indexOf(Agents[v]) > 0) flag = true; break;

if(flag)
alert(Agents[v]);// 设备类型

else

// pc

js如何判断网页是在手机QQ内置浏览器中打开?求代码!

js如何判断网页是在手机QQ内置浏览器中打开?求代码!js如何判断网页是在手机QQ内置浏览器中打开?(备注是手机QQ打开网址,不是QQ浏览器)js如何判断网页是在手机QQ内置浏览器中打开?(备注是手机QQ打开网址,不是QQ浏览器)判断如果是手机QQ打开,自动跳转到某网址!求大神

如果是在QQ浏览器中打开的,在最上面的来源中是可以看到位置的啊,并且这个好像也只能在QQ浏览器中才可以打开的,这里涉及的多一些,所以每次无论是下载软件还是搜索,都是可以找到自己需要的呢 参考技术A 其实你可以把qq浏览器设置成主页啊,这样不就可以很方便了么,在这里面的手机右上角就有一个三道杠,你可以点击一下,然后点击设置就可以啦,这样以后你打开手机浏览器就是这个主页,不是很方便么。 参考技术B 你这样做不好(ㅍ_ㅍ)

以上是关于求一段js 判断设备跳转网页的代码的主要内容,如果未能解决你的问题,请参考以下文章

求一段JS的函数代码....

求一段 广告固定在网页右下角的代码(CSS或JS都行),谢谢!!

求一段js代码打开页面div5秒弹出,点击关闭按钮后再次定时弹出

求一段js代码打开页面div5秒弹出,点击关闭按钮后再次定时弹出

JS判断移动设备最佳方法 并实现跳转至手机版网页

求一段代码javascript 或JS代码 显示 今天 是几年几月星期几 我们已经认识几天了