老师,我显示的浏览器信息与视频有点不一样
JS代码如下:
1 2 | 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浏览器的情况也很少,记住几个关键的即可。
如果帮助到了你,欢迎采纳,祝学习愉快~
测试代码没变,依旧如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <!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浏览器的测试显示,结果也正确。
判断浏览器类型的代码如下,请老师点评。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <!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积分~
来为老师/同学的回答评分吧