关于JS的浏览器判断 msiei.test(navigator.userAgent)
发布时间:2025-05-22 23:26:11 发布人:远客网络
一、关于JS的浏览器判断 /msie/i.test(navigator.userAgent)
1、正则表达式怎么可以这么用的——不要去问为什么,那是JS的语法用法,它规定可以这么用,那就这么用——就像不要去问为什么JS定义变量用var一样不是问题的问题。
2、/msie/i.test(navigator.userAgent)中的i指的是模糊匹配,不分大小写;这个正则表达式的作用是检查navigator.userAgent里面是否包含msie这个字符串(不分大小写),从而检查出是否为IE浏览器。
二、请问在js里,window有多少种方法
1、window.location对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面。window.location对象在编写时可不使用 window这个前缀。
2、location.hostname返回 web主机的域名
3、location.pathname返回当前页面的路径和文件名
4、location.port返回 web主机的端口(80或 443)
5、location.protocol返回所使用的 web协议(http://或 https://)
6、window.location.href="";跳转后有后退功能
7、window.location.replace("");跳转后没有后退功能
8、window.open("");在新的窗口打开链接,一般用于简单的弹出页面,现在基本上都被屏蔽掉
9、window.location.reload();刷新当前页面.
10、parent.location.reload();刷新父亲对象(用于框架)
11、opener.location.reload();刷新父窗口对象(用于单开窗口)
12、top.location.reload();刷新最顶端对象(用于多开窗口)
13、window.history对象包含浏览器的历史。window.history对象在编写时可不使用 window这个前缀。
14、window.history.back()-加载历史列表中的前一个 URL,与在浏览器点击后退按钮相同,
15、window.history.forward()-加载历史列表中的下一个 URL。与在浏览器中点击按钮向前相同
16、window.navigator对象包含有关访问者浏览器的信息,来自 navigator对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:
17、navigator数据可被浏览器使用者更改
18、一些浏览器对测试站点会识别错误
19、浏览器无法报告晚于浏览器发布的新操作系统
20、window.navigator对象在编写时可不使用 window这个前缀。
21、window.navigator.appCodeName返回浏览器的代码名。
22、window.navigator.appName返回代表浏览器名的字符串。
23、window.navigator.appMinorVersion返回浏览器的次版本号。该属性是一个只读的字符串。仅IE有效。
24、window.navigator.userAgent返回代表浏览器名和版本号的字符串。
25、window.navigator.platform返回浏览器平台的字符串("Win32","Win16","WinCE","Mac68k","MacPPC","HP-UX","SunOS"等)。
26、window.navigator.cpuClass返回CPU的信息("x86","68K","Alpha","PPC"等)。仅IE有效。
27、window.navigator.browserLanguage返回浏览器的语言种类。仅IE有效。
28、window.navigator.systemLanguage返回系统的语言种类。仅IE有效。
29、window.navigator.userLanguage userLanguage返回用户环境的语言种类。仅IE有效。
30、window.navigator.cookieEnabled返回 cookie是否可用的真伪值。
31、window.navigator.onLine返回是否能连上网络的真伪值。
32、window.navigator.javaEnabled()返回 Java是否可用的真伪值。
33、window.navigator.userProfile保存着用户信息的对象。拥有 addReadRequest() doReadRequest() getAttribute() clearRequest()等方法。
34、window.navigator.taintEnabled()是否可以加密数据的真伪值。仅IE有效。
35、setInterval()和 setTimeout()是 HTML DOM Window对象的两个方法。
36、window.setInterval()-间隔指定的毫秒数不停地执行指定的代码。
37、window.setTimeout()-暂停指定的毫秒数后执行指定的代码
38、window.clearInterval()方法用于停止 setInterval()方法执行的函数代码。
39、window.clearTimeout()方法用于停止执行setTimeout()方法的函数代码。
40、window.alert()-警告框经常用于确保用户可以得到某些信息。当警告框出现后,用户需要点击确定按钮才能继续进行操作。
41、window.prompt()-确认框用于使用户可以验证或者接受某些信息。当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
42、window.confirm()-提示框经常用于提示用户在进入页面前输入某个值。当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。
43、window.resizeTo()-调整当前窗口的尺寸
44、window.frameElement获取当前文档的宿主节点iframe元素
45、window.execScript()execScript函数与eval的功能相同,不同的是eval函数执行后的脚本的作用域是当前执行上下文,而execScript则总是针对全局作用域。
三、js判断是安卓还是ios 微信
JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。
1.如何判断是否为移动终端利用正则match,
匹配navigator.userAgent是否含有字符串AppleWebKit*****Mobile
安卓qq浏览器HD版只有AppleWebKit
使用navigator.browserLanguage便可得出windowsphone语言版本,
当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出navigator.language
<scripttype="text/javascript">
varu=navigator.userAgent,app=navigator.appVersion;
return{//移动终端浏览器版本信息
trident:u.indexOf('Trident')>-1,//IE内核
presto:u.indexOf('Presto')>-1,//opera内核
webKit:u.indexOf('AppleWebKit')>-1,//苹果、谷歌内核
gecko:u.indexOf('Gecko')>-1&&u.indexOf('KHTML')==-1,//火狐内核
mobile:!!u.match(/AppleWebKit.*Mobile.*/),//是否为移动终端
ios:!!u.match(/\(i[^;]+;(U;)?CPU.+MacOSX/),//ios终端
android:u.indexOf('Android')>-1||u.indexOf('Linux')>-1,//android终端或uc浏览器
iPhone:u.indexOf('iPhone')>-1,//是否为iPhone或者QQHD浏览器
iPad:u.indexOf('iPad')>-1,//是否iPad
webApp:u.indexOf('Safari')==-1//是否web应该程序,没有头部与底部
language:(navigator.browserLanguage||navigator.language).toLowerCase()
document.writeln("语言版本:"+browser.language);
document.writeln("是否为移动终端:"+browser.versions.mobile);
document.writeln("ios终端:"+browser.versions.ios);
document.writeln("android终端:"+browser.versions.android);
document.writeln("是否为iPhone:"+browser.versions.iPhone);
document.writeln("是否iPad:"+browser.versions.iPad);
document.writeln(navigator.userAgent);
</script>
比较特别的地方
UC浏览器没有安卓报头,只返回:linux,这里粗略的根据linux来判断是安卓(前提必须满足是移动终端,UC这点是满足的)
安卓QQ浏览器HD版检测的结果是:mac,Safari