老师,我显示的浏览器信息与视频有点不一样
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 星