老师,我显示的浏览器信息与视频有点不一样
JS代码如下:
let userAgent = navigator.userAgent; alert(userAgent);
在谷歌浏览器上的显示:
火狐浏览器的显示:
Opera浏览器的显示:
Edge浏览器的显示:
IE11的显示:
比较上面5款浏览器的显示信息,发现它们含有以下子字符串:
Chrome: Mozilla, AppleWebkit, Gecko, Chrome, Safari
Firefox: Mozzila, Gecko, Firefox
Opera: Mozilla, AppleWebkit, Gecko, Chrome, Safari, OPR
Edge: Mozilla, AppleWebkit, Gecko, Chrome, Safari, Edge
IE: Mozilla, WOW64, Trident, Gecko
【发现问题】
Chrome含有的字符串,其它浏览器也有,因此不能检测出来。
Firefox有独特的字符串"Firefox",可以检测。
Opera有独特的字符串"OPR",可以检测。
Edge有独特的字符串"Edge",可以检测。
IE有独特的字符串"Trident",可以检测。
那这时应该如何做到,识别用户使用的浏览器类型(内核)呢?
正在回答
同学你好!
1.let在ie8时候是不兼容的,可以看一下:
2.这边使用edge测试,显示也是ie浏览器。可能它是ie浏览器高版本的缘故:
在5-4的练习中,提示如下:
所以使用ie8测试即可。同学可以不用纠这个问题,关于浏览器内核问题以后用到的时候会很少,而且使用IE浏览器的情况也很少,记住几个关键的即可。
如果帮助到了你,欢迎采纳,祝学习愉快~
测试代码没变,依旧如下:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>5-1-navigator</title> <meta charset="UTF-8"> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <script type="text/javascript"> window.onload = function () { function showBrowser() { var str = navigator.userAgent.toLowerCase(); if (str.indexOf("trident") > -1 || str.indexOf("msie") > -1) { return "IE browser"; } else if (str.indexOf("edge") > -1) { return "Edge browser"; } else if (str.indexOf("opera") > -1 || str.indexOf("opr") > -1) { return "Opera browser"; } else if (str.indexOf("firefox") > -1 && str.indexOf("mozilla") > -1) { return "Firefox browser"; } else if (str.indexOf("chrome") > -1) { return "Chrome browser"; } } alert(showBrowser()); } </script> </head> <body> </body> </html>
第1张gif图是IE浏览器的测试显示,对于IE11、10、9、8、7和5,都测试正确。
第2张gif图是Edge浏览器的测试显示,结果也正确。
判断浏览器类型的代码如下,请老师点评。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>5-1-navigator</title> <meta charset="UTF-8"> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <script type="text/javascript"> window.onload = function () { function showBrowser() { let str = navigator.userAgent.toLowerCase(); if (str.indexOf("trident") > -1 || str.indexOf("msie") > -1) { return "IE browser"; } else if (str.indexOf("edge") > -1) { return "Edge browser"; } else if (str.indexOf("opera") > -1 || str.indexOf("opr") > -1) { return "Opera browser"; } else if (str.indexOf("firefox") > -1 && str.indexOf("mozilla") > -1) { return "Firefox browser"; } else if (str.indexOf("chrome") > -1) { return "Chrome browser"; } } alert(showBrowser()); } </script> </head> <body> </body> </html>
其它浏览器都有独特字符串,因此可以检测用户使用的浏览器是否Firefox、Opera、Edge和IE。
而Chrome浏览器没有独特字符串,那么就不能检测出用户的浏览器是否Chrome?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星