00:00
提前上一会儿课,那咱咱们这个周周三的时候讲的一些都是一些主要是些练习,所以咱们就不再去总结那些东西了啊,练习也没没什么可说的了,那咱们今天呢,直接来说我们这个今天的这个内容,来我们这个第17天了啊,那这块我们来说一个什么东西呢?诶我们说完了这个,呃,其实咱们之前一段时间主要说的是一个这个盗墓对象,包括我们这些事件呀,包括我们这些,呃,文档这个页面一些增删给查的一些操作啊,说的都是我们这个do对象,那接下来呢,诶,我们还差一个,我们刚开始去说这个学GS的时候,我们就说了啊,学三个东西,一个就是我们这个艾script,我们这个标准,还有一个是我们这个DOM,还有DOM对象啊,还有一个什么呀,诶boom,所以接下来呢,我们来说一下我们这个报鲍M,我们来看看啊这鲍M,其实咱们虽然鲍M呢,你再看这个鲍就应该不会觉得陌生了,诶那这个鲍M它是看着什么什么玩意。
01:00
跟我们这个DOM就一字之差是吧?诶,DOM是DOM boom是BOM,诶那DOM叫什么呀?叫文档对象模型吧,Boom呢,我们叫做浏览器对象模型啊,浏览器对象模型browse,诶,这个object model a browse object model浏览器对象模型,那你们猜猜它是干嘛的呀?DOM是干嘛的呀?DOM是通过GS去操作我们这个网页的吧,所以叫文档对象模型,因为我们一个网页就叫一个文档,那这个呢,叫做浏览器对象模型是干嘛的呢?诶诶报可以使我们通过这个GS来干嘛呢?来操作我们那什么呀,浏览器的啊,通过GS来操作浏览器的,Do是操作网页的,而DOM呢,是操作我们那什么呀,浏览器的啊,浏览器的。诶,那我们说什么呢?在我们这个报中,诶为诶我们提供了这个一组对象,用来干嘛呢?
02:00
从来完成我们对对这个浏览器的一个操作啊,来完成对浏览器的一个操作,那我们来说有哪些对象呢?那这块我们就要列一下这个报名对象直接来说了,诶第一个你猜猜有个谁啊。咱们学过一个浏览器相关对象有个谁呀?呃,是不是我们这个window啊,哎,Window啊,我描述这个对象我现在用大写了,但是咱们用的时候都是什么呀,小写的啊,现我们描述它的类型是用一个大写window,诶还有谁呢?诶还有一个我们叫做一个navi naviga or啊叫做navigator啊navig navigator,还有一个叫什么?叫做一个lo location,还有一个叫一个history啊,History还有一个呢,哎,Screen啊,一共是我们说BOO对象,我们一共要说这几个对象啊,这个对象除了困呢,我们不说其他的,我们来说一下坤,因为我们用的不多啊,那我们来分别说一下这几个对象,我们最熟悉的是我们这个window window呢是什么呀?Window对象,哎,它代表的是我们这个整个浏览器的什么呀?呃,浏览器的这个窗口啊,窗口同时呢,同时我们这个window也是我们这个什么呀。
03:14
诶,也是我们的这个,哎,网页中的这个全局对象,诶全局对象在全局作用域里边那些属性都,诶那些变量都会作为window对象的这个属性保存,在全局作用域里边那些这个函数都会作为window对象的这个方法保存,那我们最熟悉的就是谁了window对象了啊温对讲了,经过用过很多遍了,就不多说了啊,那往下说呢,我们叫做一个什么呀?Navigator navigator什么意思呀?航海家,诶航海说白了他是什么呀,我们说了最早的时候浏览器最火的浏览器是王景公司出的那个航海家浏览器是吧?他的名字呢,叫什么呀,就叫那位,那vigator是它这个浏览器的一个名字啊,所以这个东西呢,Navigator你就可以理解为什么呀,指的是一个浏览器的一个意思啊浏览器的意思,那这是什么呢?叫做代表的我们这个当前浏览器的这个信息啊,信息通过什么呢?通过该对象可以什么呢?可以来识别我们这个不同的浏览器啊,可以来识别我们这个不同的浏览器,叫做一个navigator啊navigator然后下边呢,Location什么意思?诶地址是吧?诶地址叫什么呢?诶代表我们当前叫做浏览器的什么呢?浏览器的地址栏信息什么意思呀,一打开浏览器我们来看看啊,我一打开浏览器,我这是不是一个地址栏啊,老K指的就是什么呢?指的就是这一块还是那块,一定要注意啊,我们。
04:42
们去讲这个对象,这个对象都不是什么的,不是凭空创建的啊,这个对象都不是凭空创建的,都是什么呀,它会有对应的这个东西,比如说window代表的就是什么呀,就是整个浏览器的什么呀,窗口啊,而这个navigator呢,代表的是我们浏器的这个信息啊,都是一些信息,而我们这个locationation呢,代表的什么呀,就这地址栏啊,地理栏,所以注意啊,对象都是有其代表那个东西的啊,一定要注意,在用一个对象的时候,你要先搞清楚这个对象它代表什么,或者说你要需要做什么功能的时,你要考虑我需要哪些对象,然后再乘而去找这个对象啊,找个老K代表我们当前浏览器的地址源信息,那我说你说我要这块有啥用啊?
05:22
要地俩有啥用啊?诶,那我通过地址栏我是不是可以跳转页面啊,诶页面啊,所以注意通过我们这个什么呢?诶通过我们这个location可以什么呢?诶可以,诶获取我们这个地址栏信息或什么呢?或者操作我们这个浏览器嘛呢,跳转页面啊对页面这是我们说这个location history呢?诶代表我们这个浏览器的一个什么呀?诶历史记录啊,历史记录啊,代表我们浏览器的历史记录可以什么呢?可以通过该对象诶来干嘛呢?来操作浏览器的什么呀?诶历史记录啊,来操作浏览器的这个历史记录,但是这块一说到历史记录,我们就带来一个问题,那我们说了,那如果说我们通过一个简单的GS对象就能去获取到这个用户的历史记录,这个事儿,它是不是有点有点可怕呀,为什么可怕呀,诶假设你想你这上网呢,你上网你访问的是别人的网页是吧,那别人的网页里边会获。
06:24
得到一个黑词对象,他通过这个对象干嘛呢?可以去读取你的这个历史记录,那你想想你那点小秘密是不是?全都被他获取到了啊,全都被他获取到了啊,所以这块一定要注意啊,一定要注意我们叫什么呢?诶由于什么呢?由于我们这个隐私的原因,诶隐私的原因,诶我们什么呢?诶该对象不能获取到什么呢?具体的历史啊记录啊,不能获得到具体历史记录,也就说什么呀?诶你访问到啥呢?我不能通过它去访,我不能通过它去判断你访问过啥,诶那那同学说了,那不能知道历史,具体历史记录那东西有啥用啊?诶只能操作我们的浏览器干嘛呢?向前或向后翻译什么意思,你访问完网站以后,我这是不是会有一个后退呀,还有一个这个前进按钮吧,你可以点后退,往后退,一个可以点前进,往前去,一个可以点这个,那我们说了,你用history也只能去操作这个按钮,不能访问具体的这个历史记录,而且什么呢?而且该操作。
07:33
只在什么呢?只在我们这个,诶当次哎访问时干嘛呢。有效啊,只在当次访问时有效,什么意思?这块我们先简单理解一下什么意思,它所能访问的历史记录干嘛呢?只是你打开网页这一次好,你这一关了,是不是关上了呀,我又打开,这是我第二次访问呀,你注意了我能不能访问到第一次那个历史记录。不能只能访问什么呀,哎,我这一次的啊,只能访问当次啊,只能访问当次的,只能访问前面的啊好,这是我们说的这个history啊history,然后呢,下边一个叫做一个screen什么意思个诶屏幕啊,屏幕代表什么呢?代表我们这个用户的这个什么呀,叫做诶屏幕的这个信息的,诶通过什么呢?通过该对象可以什么呢?诶可以获取到我们这个用户的这什么呀,诶屏幕的这个诶相关信息,诶就是什么呀,简单来说就是什么呀,显示气的这个相关信息,嗯相关信息,这是一个screen,但是这里边注意了,Screen呢,现在在我们这块呢,其实在我们这个,呃PC端的实际上用的不是那么多,这东西呢,我们就不不去说了,这东西可能什么时候用呢,我们做一些这种移动端的,因为移动端这个屏幕它千差万别是吧,那我们可能在移动端的可能会用一些这块呢,我们基本上用的很少,或者基本上不用,所以这个对象呢,我们不就不说了,主要还是说上面这几个啊window。
08:59
Navigator,还有一个location,还有一个history,这几个Windows其实咱们也说过了,也不再强调了,主要还是说的这这三个玩意儿,这三个玩意儿,那现在我们来说这对象有了,那现在我们说了,我知道有这些对象了,那接下来我们面临的一个问题是什么呀?
09:17
我是不是得用这些对象啊,我想用window window知怎么用,直接来个什么呀,直接我alert来一个window,这是不是就有这个window了,或者我直接来来一什么呢?来一个这个,诶cancel点一个log,一个window,它就有了,为什么有了,它是我们这个全局对象吧,诶直接就可以去用,是不是就是window啊,哎,Window就有了,但是还有一些人呢,还有什么navigator location history,还有这些对象我们要怎么用呢?诶,我们来说一下啊,诶我们这些对象这些什么呢?这些报幕对象在我们这个浏览器中,它都是什么呢?都是作为我们这个window对象的这个属性保存的啊,都是作为window对象属性保存的,或者换一句话说,这些对象全都是谁呀?全局对象啊,Window的属性全局对象那么可以什么呢?诶我们可以通过我们这个window对象来使用啊,也可以什么呢?也可以直接使用,因为它是一个全局的网,只要没有重名的,我们就可以直接去使用,那我们来看什么效果,比如说我想用一个navigator,直接什么呢?直接window.navigator啊注意我们描述类型的时候用的是大写,但是我们用的时候它的名都是什么呀?小写的啊,小写的你这一保存是不是就有了呀?诶,这一块你用window.naviator可以,你干嘛呢?直接写naviator是不是也行啊,因为它是全局的嘛,诶全局的你可以省略这个window啊可以省。
10:47
的温度,那你说我要用location呢,直接来个什么呢?Location是不是就行了呀,一保存,诶你看那个location告诉你的送到师地址信息,是不是直接把我们这个地址而给我们打印出来了,诶对联给我们打印出来了啊,然后还有谁呢?还有我们这个叫做一个cancel点一个log log1谁呢?Log一个叫做一个黑screen,一保存走,你是不是也出来了呀,包括那个screen啊,都可以去打印,我就不再一一演示了,所以注意他们都是window下的属性,你可以直接通过window属window来使用,也可以直接去使用啊,这些对象怎么用我们就不多说了,包括在我们这个文档里,打开我们这个文档W3SCHOOL离线手册,我们来看看javascript的这个H天猫do,找到do参考你看browse对象window navigator screen history location是不是都给你列出来了,这些就是我们这个报幕对象,你点开window,我们来看window里边这些属性,我们来看谁呀,什么history。
11:47
哎,还有location,还有navigator,还有我们的screen是不是都在这呢?哎,甚至还有一什么呀,还有一个self self什么玩意儿,就是window自己啊,Window自己啊,所以这些报量全都在我们这个window镜箱里封装,包括之前的这个。
12:05
刀出的是也在这儿呢,哎,也在这儿呢,啊,所注意都是温度对象的属性,那接下来呢,对这个Bo幕对象做一个简单的了解,那我们来一个一个的去说一下这些对象,我们先从谁说起呢?先从我们这个navy来说起啊,Navi刚才我们说了,它代表的是我们什么呀?是我们这个。嗯,是我们这个当前浏览器的信息,通过该对象呢,可以来识别什么呀,不同的这个浏览器啊浏览器那这块我们来看一下,直接cancel.load的一个naviator,我这一保存,咱们来看,那它应该有什么作用啊,诶它干嘛呀,我现在这用的是这个Chrome浏览器,那我希望干嘛呀,它就告诉我你用的是,可是我用的是火狐浏器,我就希望能告诉我干嘛呀,用的是火狐,用的是IE,我就希望你告诉我用的是什么呀,IE对吧?诶IE,那我们来看看吧,他怎么去看啊,直接点开,注意它这块有一个小问题,它用的是一个大写开头,我们用的时候都是什么呀,小写的啊小写的,来我这一点开看这吧,里边上面这些这些东西我们就不管了,直接往下看,是不是对象一些属性啊,那我们要识别这个浏览器,那无非也就是什么呀,也就是诶调个属性,要不然就调个方法对吧?哎,那这些方法呢,其实我们都没用,我们主要是看它这些属性,属性我们来看看它有什么什么APP。
13:22
Code name叫返回浏览器的什么呀?代码名,还有一个叫什么呀?APP name返回浏览器的一个名称吧,诶,我一看这东西不错,APP内返回浏览器的名称,诶,要是给我返回的一个Chrome,我就知道我这什么呀?诶谷歌浏览器返回一个火狐,我是不是知道是火狐乱讲,诶我们来看看这个APP name啊,直接怎么用啊,直接navigator点一个APP name,咱们来一个把乐直接一点。咱们直接呀,在我们这个外部去看它不在内部看,直接alert一个它啊然后呢,打开我们火狐一打开,诶叫做一个什么呀,叫做一个net skip,那skip同意了网景公司啊,这是网景公司名字,但是网景公司干嘛了,已经倒闭了是吧,已经倒闭了,但是我们说了网景公司实际上是我们这个火狐的这个什么呀,前身那一想呢,这个火狐向这个网景公司致敬呢。
14:18
情有可原是吧,叫next咱们可以理解啊,可以理解,然后再看我们的这个一点开。哎呦,他也叫nek是吧?诶那他可能也致敬是吧,谷歌可能致敬这个伟大的公司是吧?来咱们再看下两期,看看我们这IE,哎呦妈呀,IE它也叫let k,哎呀你这I,你把这个网景公司就是因为微软是不是倒闭了呀,没有微软网景公司还不至于倒闭,结果什么呢?在IE里它也叫。K啊K,来,我们来看看效果,再看看其他的IE8,可能会有点小变化。
15:00
诶,I8还是比较要脸的是吧,还叫这个microoft的一个Internet什么呀,Explorer,哎,但是除了I8我们看I9不,诶I9还要是吧,I9还在,I10也还就到IE11是不是就变成我们这个nek了,艾K了,那我们说一下这是为什么啊,这是为什么IE11为什么也叫这个ne scale啊net scale诶待会我们还会说是吧,A11是一个,诶挺缺德一个浏览器是吧?诶我们来说什么呢?由于什么原因呢?由于这个历史原因,诶什么历史原因呢?什么历史原因,咱们具体先不管它了啊由于历史原因啊,简单来说什么呢?你想想这这属性名叫什么呀?叫navigator是吧?诶叫NAVIGATOR1叫这个navigator呢,就证明这东西是谁发明的呀,肯定是王景,是不是先用的呀,诶王景公司先用的,所以这块呢,历史原因就是什么呀,由于这个东西是网警公司先用的,所以这些属性很多都干嘛呀,都从那块习惯给它沿用过来了,当然我们再去具体的说是为什么啊,它是有一个原因的,我们来说一下啊,由于这个历史原因呢。
16:00
我们说这个navigator navigator对象中的这个部分属性,哎,大部分属性都干嘛呢?都已经不能帮助我们干嘛呢,帮助我们识别浏览器了啊,都已经不能帮我们识别浏览器了,那我们想想这个IE它为什么叫IE11,为什么要叫netkpe,而IE10他们还是叫这个Internet,这个explore呢?为什么IE11就变改成这个netcape了,那注意了,我们说了这个玩意儿是不是可以帮助我们去识别出不同的浏览器啊,那这块就会有一个问题,那我们在开发的时候呢,那我们说了,我们总要去兼容那么几款浏览器,对吧,主要兼容的,那我们就会发现,有的时候呢,我们去兼容IE的时候非常的麻烦,这东西应该你们现在应该已经有一些体会了,对吧,我们兼容IE8的时候,往往需要做很多的一些工作,那于是呢,有的时候我们兼容这东西实在太难了,或者说我们实在。
17:00
不太想兼容它了,那我们采取了诶退而求其次的一个方案,什么方案呢?我让我的在几个主流的浏览器里,比如说我们在Chrome里,我在火狐里干嘛呢?我让它可以显示一个最佳的效果啊,可以显示一个最佳的效果,而在我的这个IE浏览器里边呢,我干嘛呀,我让他可以正常显示,比如说这个东西你是可以正常看到的,但是你有一些效果我给你完了。我给你解去掉了,诶确保可以正常的去显示,包括你去看京东,你去看京东,如果你打开你在我们这个Chrome里啊,在火锅里打开这个效果还还挺好的,但是呢,如果你在IE里打开任何一款IE里打开它的一些动画效果就干嘛了。就没了,哎,就没了,为什么?就是因为IE浏览器有这些问题,那问题就来了,那现在我们说了,你要在IE里显示一个效果,要在火狐里显示一个效果,那我们想了,那你是不是得先得判断是IE还是crew还是火狐啊这个判断,那我们之前可能习惯什么呀,使用这个na卫get对象去判断,我这一看什么呀,假设我看到IE10是一个什么呀,Microsoft干脆我给你一个什么呀,稍微次一点的网页显示起来效果呢,不是那么好,但是也能正常的去浏览,给你这么一个,然后呢,我一看你这可能什么呀,火狐可能出来一什么呀,那就kpe一看啊,这个玩意儿好浏览器是吧,好浏览器,那干脆干嘛呢?我给你那个效果好的网页,这能理解吧,但是这就带来一个问题,同样上一个网站,我用IE去访问,哎呦这个效果不是那么好,哎用一个是就跟什么呀,就跟你看那个那个女生那个照片的是吧,你用火狐一看呢,它是一什么呀。
18:43
美化过的效果一到IE呢,那素颜了是吧,那你就那这个时候你不会去想是这个网站的问题,能理解吗?你一定会什么呀,浏览器不行啊,一定想是浏览器不行,那久而久之,可能这个IE的名声是不是越来越次啊,哎,越来越次,那所以I就想什么呀,我这浏览器吧,你能做的够好了,就是希望大家吧,不要再去歧视我了,干嘛呢,你就把我当成普通的浏览器去,这下就完事了,但是你想想大家已经这么对他这么多年了,能不能改过来,不能改过来,所以IE11呢,尤其是到IE11把这个工作做到极致干嘛呢?我就是让你不能去识别我,我就是让我干嘛呀,我跟那些苦用呀,跟那些火狐浏览器啊,越来越像,也就是说你把给他们的页面是不是也给我呀,诶我也能给你确保显示一个好的效果,所以看的什么呢,你这一看是不是就是nicek呀,诶他尽量跟他们干嘛呀一样,让你干嘛呀,找不出它来,说白了就是什么呀,就。
19:43
就是伪装一下啊,伪装一下,包装一下自己把自己包装的呢,不是那么的像爱E啊,不是那么的像爱E,所以这些属性呢,大部分情况下都已经没有没有用处了啊,大部分情况都没没有用处了,诶那这玩意儿大部分属性都没有用处了,那这玩意儿还这对象是没用了呀,但是还有一个有用的啊,还有一个有用的,但是看这个情况呢,被这个IE11代折腾之腾,马上也就没用了啊,马上你就没用了,叫什么呢?叫做一个user agent。
20:15
哎,但是呢,我们来说,哎只有还还剩下什么呀,哎只一般,哎我们,哎只会使用什么呢?使用我们这个user isn来干嘛呢?来判断我们这个浏览器的这个什么呀,信息啊,来判断我们浏览器的信息,User agent什么意思呀?User叫什么呀?用户agent叫什么呀?代理user agent连起来就叫什么呀,叫用户代理,很奇怪的一个名字是吧,但是这个名字等价于浏览器,User的A的等价于浏览器,以后看一些书,可能有一些书它是这么写的,你写一个网页,用户代理是如何如何显示的,它的意思就是什么呀,就是浏览器是如何显示的啊UA的等价于浏览器,以后看见用户代理,你就知道他说的是谁啊,浏览器啊浏览器,那现在呢,我们只会使用这个user isn来判断浏览器的一个信息,那我们来说user isn是什么呢?我们说user。
21:16
就是一什么呀,它是一个这个字符串,就是一个字符串啊字符串这个什么呢?这个字符串中包含有什么呢?包含有用来我们这个描述我们这个浏览器信息的这个内容,那我们说什么呢?不同的浏览器会什么呢?会有不同的这个user agent啊,不同的浏览器有不同的这个user agent,所以干嘛呢?我们是不是可以通过这个user agent来判断浏览器信息啊,诶来我们看看效果啊,咱们先来看谁呢?我直接cancel.log了啊,咱们再控制下输出navigator,点一个叫做一个user a,既然是个字符串,我这不就输出一下啊,诶先看我这个火狐F12打开控制台,我这一刷新走你诶是不是输出这么一串字符串啊,诶来我给它复制过来CTRLC,然后呢,我们就来写一下啊,把这些都正过来啊,这是火狐的这个什么呀,User agent。
22:18
直接粘过来,诶你看这里边有什么呀,什么za5.0是吧,Za基金会这5.0版本,然后呢,Windows nt6.1,这是我们这个系统信息,表示我这是一个WIN7的啊,WIN7的WIN7的这个代号钥是Windows nt6.1啊,然后诶WOW64表示我是64位的系统,50.0呢,表示我这个浏览器的版本是50.0这个版本的啊然后往下什么这个该口该口是什么呀,很就是火狐里边那个CSS那个页面的渲染的引擎,它是一个比较出名的一个CS引擎,渲染效果呢,诶比较好,也比较快,性能比较好一点,它比较出名,最出名的引擎应该就是它了,CSS引擎啊,不是说GS引擎,然后再往下呢,叫做一个firefox,诶firefox表示什么呀?我们的浏览器是不是火狐浏乱器啊,诶,那现在我们发现什么了,火狐浏览器里边字符串是是这样的,咱们先不看其他浏览器,我们可想而知,其他浏览器肯定跟它不能一样,对吧,你要一样又没有意义啊,又没有意义了。
23:18
首先肯定一点的是,其他浏览器里边它不可能出现firefox对吧,哎,Firefox那现在我们来看看看谁的呢,看看我们这个crome这一刷新,然后呢,走你诶是不是出来这么一个东西啊,哎,这么一个东西啊来CTRLC这一粘过来,这是我们这个。哎,Chrome的这个U给,哎,包括你看我们这个内置烂气我已保存。它是不是也是Chrome的呀,这呀实际上是一样的啊,所以我们这个HV内浏它也是一个Chrome,来我们来看一下这个东西什么效果,也是前面来一个moza5.0这东西呢,已经没有意义了,为什么它跟我们这个这个APP内它都是nek是一样的了,都写牡丹5.0,因为它是开始比较出名的啊,都写它了,什么这个都是一一系列,但是你会发现什么呢?在我们谷歌里边它会有什么?
24:20
Chrome吧,而火狐里有什么呀,有firefox,那现在我要想判断一个浏览器,它是火狐还是chome,那怎么办?我是不是就看它这个user里边有没有这个呀?诶,如果有firef,那你就是火狐,如果你有这个ome,是不是证明你是谷歌浏览器啊,哎,Chome浏览器,那现在我要怎么判断一个字符串里有没有纸的内容,来一个吧,写什么呀,我是不是写一个判断呀,我要判断一个字符串里是否包含这个fairf falsex,那怎么办呀,我是不是写个正子表式啊,哎,直接来一个这个斜盖,我们叫做fair,哎,FOX是不是这么一个呀?哎,然后点一个test test,一个这个什么呀,一个navviator,咱们这样写吧,我在这块呢,定义一个这个变量。
25:16
直接挖一个这个UAU的等于一个它,然后呢,我这都打印的是这个UA,然后我这test谁呢UA,诶我是不是检查这个UA里边有没有firefox呀,但是你要注意我这写的是一个小写,但是人家这是不是大写呀,诶我希望忽略大小写,我是不是来个哎呀,诶如果你这个UA里边有firefox,那说明什么,这不说明是火狐乱气啊,哎来你是火狐,诶来我这一保存,咱们来看效果啊,一刷新走,你火狐是不是说呀,你是火狐,但是在chome里呢,一保存有没有没有,因为它是不是不满足这个条件呀,哎,不满足这个条件,那然后再说,我要想判断这个cruome呢,是不是一样了,Else if我是不是接着判断呀,来把这东西粘过来,只不过里边这firefox换成什么呀?诶换成这个呀,Cru,但是这里边咱们就都给它写成小写完了,然忽略了写我这一保存,然后。
26:16
出来ALERT1ALERT一个叫做你是我们这个C是不是就OK了呀,一保存看火狐里一出来是不是你是火狐啊,诶然后在chome里一看,一刷新,是不是你是G呀,诶通过这种方式,那我们说了,如果你是火狐,我对你做一些操作,如果你是G呢,我对你做另操作,那我是不是可以对我们这个浏览器做一些特殊的处理了,哎,特殊处理了,那我们接下来看这能看懂吧,正则表达式啊,正则表达式啊,然后呢,接下来我们再看谁呢?看我们这个IEIE,咱们先看我们这个IEIE8 ie8呢,一打印出来是这么一个,它还比较老呢,还叫莫za4.0啊,咱们给它粘过来。CTRLC,这是我们这个I8的,I8的也给粘过来,咱们看写的什么呀,写的一个叫做moza4.0,哎,这一什么呀,MMIE8.0 M是Microsoft微软,IE呢是Internet叫什么R,诶说白了就是什么呀,IE的意思啊,IE的意思后边什么6.1啊,后边一堆我们都不管了,那我们会发现什么呢?IE8里边是不是有一个Ms IE呀,诶然后再看谁呢?看我们这个IEI9。
27:30
I9呢,其实跟他呢差不多,但是这块已经换成了我们这个5.0了啊,IE9咱们简单看一下啊,这是一个抹灾了5.0唯一的不同,它这也有什么呀,Mi IE它是9.0啊,它是9.0,再来看谁呢?再来看我们这个IE10。IE10我给他粘过来,哎是不msiee10.0了,其实其他的我们都不不用管了,我一发现什么呢?现在如果我们来说什么呢?凡是IE浏览器里边,它是不是都有一个Ms IE呀,诶只要有这个玩意儿,是不是证明你是IE浏览器啊,诶只要有这个你就证明你是IE浏览器,那你如果想判断版本的话,你再加一八二零六二零十二零,再去判断,我们现在就来干嘛呢?我就来判断它是不是IE,那这块怎么玩,Else if if什么呢?If,我们这什么呀,Ms IE,诶然后一个I点一个PA,我们这个U,喂,如果你里边有这个,那肯定没跑了,你是谁啊?诶是不是你是IE浏览器啊,诶你是我们这个IE浏览器,诶来我这一保存,咱们来看效果啊,在火狐里一刷新,是不是出现你是火狐啊,在我们come里一刷新,是不是你是没啊在我们IE这是IE10。
28:50
是一刷新走你是不是你是IE浏览器啊,来再往下IE9是不是也是啊,诶再来一个我们这IEIE8是不是也是你是IE浏览器啊,诶IE这样就可以识别出来了,但注意了,有一哥们一直没舍得试呢,IE11IE11走你刷新刷新是不用试了,压根没反应吧,哎,为啥呀,来咱们看看爱意11的IE11里边什么莫在啦,5.0n Windows nt6.1,你发现这里边它没弹出的原因肯定是它这里边有没有msiee啊,没有,而且这里边看呢,咱们来看看啊,大概看。
29:34
这一看好像跟这个温这跟这微软跟这个IE相关的任何内容是不是都没有啊,哎,都没有啊,所以注意在我们这个I意十里边的,诶在我们这个爱意11中,诶已经什么呢?已经将我这个微软和这个IE相关的标识干嘛呢,都已经去除了,哎都已经去除了,所以呢,我们干嘛呢,已经基本上啊基本诶已经不能通过这个user agent来干嘛呢,来识别一个这个浏览器是否是IE了啊是否是IE了,为什么会这么设计它就还是那个问题,因为什么呀,因为IE以前他实际上他是什么呀,他受歧视还是那个问题,我给IE总是比别人那网页干嘛呀要差一点,要差一点,所以干嘛呢,IE11想我不想。
30:35
收歧视了,那干嘛呢,我改名呗,现在A11它也也不叫I11是吧,叫什么呀,这个age了是吧?哎叫做一个age,那这块我们来说,但是呢,我们说,所以他干嘛呢,他把这个UA里边所有和微软和这个IE相关的一个标识呢,都给它干嘛了去除了那现在唯一一个能识别的呢,只有一个这个什么呀。版本RV是一个11.0是吧,那这东西有时候也不准确,所以这东西呢,我们就不再去用它了啊,不再用它了,所以IE呢是希望什么呀,希望大家能对待其他浏览器一样对待我,包括你看他写的什么呀,我们刚才说了,我们这个该O是我们这个什么呀,是我们这个火狐的这个CSN渲染引擎吧,这个引擎是比较出名的,所以我们最好的网页往往是会给这个引擎的,但是IE你看他怎么写,最后写一什么呢?也写一改口,还有什么呢?Light改口,他为什么写这么一个,诶告诉你我和他很像是吧,很像好网页呢,你也可以给我,诶你可以给我,但是也不光IE,火狐肉他也干嘛呀,他也会这么写啊,他也会这么写,这倒无所谓,但是IE唯一的缺的地方干嘛呢。他让我们已经。
31:43
说看不出来他是IE了呀,哎,他是IE了,那IE还是觉得什么呀,我这个浏览器已经足够先进了,你可以把很好的网页干嘛呀交给我去显示,我绝对干嘛呀,绝对没问题了,哎,绝对没问题了,但是呢,实际情况呢,是什么呀,实际情况基本上可以认为是这个微软呢,想多了,哎想多了,那IE现在IE,包括我们到了IE11,它里边实际上还是什么呀,还是会有一些问题,比如说会有一些兼容性的问题,我们不得不去处理一下,但是现在就面临了一个问题,什么问题呢?我通过这个玩意儿。
32:21
是不是已经判断不出来他是IE11了呀,哎,那就问题来了,那我判断不出来了,我是不是就不能再去处理它了呀,所以这块他这个做法呢,给我们增添了很多的什么呀,很多的麻烦,所以我们要对他表示一个鄙智是吧?诶增添了很多麻烦,但是呢,叫什么呀,叫魔高一尺道高一丈是吧?或者道高一尺魔高一丈之类之类的啊,那现在我们来说,那虽然不能通过这种方式来判断了,我们要想什么呀?想其他招啊,想其他招,那其他招怎么判断呢?那我们来说,如果通过user agent不能判断,我们说什么呢?如果通过我们这个user agent,哎,不能判断,我们还可以什么呢?诶还可以通过什么呢?诶通过我们一些浏览器中特有的这个对象来干嘛呢?来判断我们这个浏览器的什么呀,信息啊,来判断浏览器信息什么意思,那我们说了,咱们在开发过程当中,你会发现有一些对象只在哪有啊只在。
33:21
IE里有,而在其他浏览题里边是不是没有啊,比如说我们有一个这个current style这个属性是不是只有IE里有呀?诶比如说我们有一个叫做一个touch invent这个属性是不是也只有这个IE6啊,哎,那我们想想我就干嘛呢?我要找到这些特有IE中特有的属性,如果你的浏览器里有这个属性,那证明什么呀?是不是证明你是IE啊,哎,如果没有是不是证明你你不是IE啊,哎,你不是IE,所以我们主要找的一些什么呀,特有的对象就行了,哎,特有对象就行了,那这个对象其实很多,比如说我们就说我们最常用的,比如有一个什么呢?比如有一个对象叫做什么呢?Act叫做active X叫做一个凹波Jack这么一个这么一个对象,它实际上是一个什么呢?是一个这个构造函数,那这个东西我们说来干嘛的呢?是用来去,诶发送我们这个A站的请求的这个对象是IE点独有的,它是谁的呢?它是我们这个window对象的一个属性,我们直接来看一下啊,我。
34:21
直接来一个alert,一个active X object alert啊,在火狐里你打印我是火狐马了,是印报错了,诶active X object is not defend,火狐里边是不是没有这玩意儿,哎,没有这玩意啊,我把上面给它注了啊,注了不它干扰易保存,再看我们易保存不忙了,是不是也报错来,诶,Not DeFine,但是在我们IEIE里IE11为运行,是不是打印出一函数来啊,诶它实际上是一个构造函数,包括在我们IE890是不是都有这么一个东西啊,这对象很长时间了,可能IEIE5IE4可能就有这个对象了,所以这个东西呢,只有什么呀?只有IE里有,哎,只有IE的有,那我们说了我可以干嘛呀,我是不是可以判断一下啊,如果你有这个对象,那就证明什么呀,你是IE吧,如果没有,是不是证明你就不是了,哎,不是,那我这块怎么办,它是window对象的属性,所以我直接写一个什么呢?window.active X object是不是行了,跟刚是一样的,但。
35:21
这好有什么好处啊,我写温点的时候,如果没有的话,它就干嘛了,不报错了啊,不报错了会返回一个安范,所以来什么呢?来一个if。诶,那如果有的话,它是不是会转换成一个处啊,哎,转换一个处,我直接来一个alert,诶,你是IE,哎,我已经抓住你了,哎,我是不是来这么一个呀,如果是IE是不是出来这么一个呀,然后我们再来什么呢?来一个else,哎,乐一个叫什么呢?你不是IE,是不是这样啊?哎,我来干嘛呀,通过这个对象来判断,如果你window里边有这个对象,那么毫无疑问你肯定是IE,如果没有,那你就有什么呢?不是IE啊,不是IE,来看这我一刷新,诶不是IE吧,来看我们这个GROUP1刷新,是不是不是IE啊,哎,来咱们再看这IE8,我这一刷新走你,诶,你是IE,我已经抓住你了,是不是无所遁形了呀?诶就像一个照妖镜一样,是吧?来再看我们这个九走,你是不是也是,你是艾叶,我已经抓住你了。然后再看我们这个艾叶是。
36:28
完了还不舍得出来了,IE10是不是也抓住了?哎,那再来看我们这个IE11。走,你。哎哟,你不是爱意什么情况呀,难道爱意11里边没有这个对象吗?刚才我们打印了有没有啊,有吧,来我们来看看额,一个window点一个这个active X all不Jack,我这一保存一刷新从有没有啊,有有竟然没有进判断,包括我们IE8里边是不是也有啊,有,既然没有进判断,那我们说了,如果你有这个对象,他这是不是应该转换成布尔啊,应该转换成处,那处你是不是应该直行啊,但是IE11呢,没有执行,执行的是什么呀?Else,那证明它是不是没转换成处啊?诶,那这东西转成布尔值啥玩意,我们来看看啊,怎么转啊,我是不是来雅叹号啊,让他转一下啊,我们看看我们这IE8里边,我这一刷新走你处。
37:37
再看看什么呢?IEIE9走你。处,诶爱10处来爱11FOURTH,哎,Fourth什么意思呀?哎,又是那个是吧,魔高一尺,道高一丈是吧?哎,他干嘛呢?因为这个属性用的干嘛了呀,太多了,诶IE11也发现了,经常会用这个属性来判断我这个是不是IE哪也是意想干嘛呀,我还是做点小手脚吧,把这B象改了一下,改完了以后呢,你再转换成布尔值的时候,它是转成么了,哎,转成force,那转成false,你是不是又认不出我来了?哎,所以这玩意呢?诶很恶心是吧?哎,很恶心,但是没关系,咱们还有别的招是吧?哎,还有别的招,那怎么办呢?那我们想想,那现在我们是干嘛呀,我是要把你这个对象转成不尔吧,那你不让我转我就不用了,那我怎么办呢?哎,还记不记得我们有一个in啊,诶,我来一什么呢?IQ X X or black,来什么呢?In window,我是不是看你这个window里边有没。
38:41
没有这个属性啊,诶有没有这个属性,这个东西它做不了手脚啊,我们先看火狐一刷新是不是force呀,没有看我们GRO1刷新是不是也是force呀,没有再来看谁呢?咱们先看看IE8 ie8是不是处有啊,直接看IE11走你。诶,是不是也是处有啊,哎,可算给它逮出了啊,可算给它改着了,所以你们会发现什么呢?如果这这还记得什么意思吧,检查一个对象里是否包含某个属性,一定要注意,这传的是一个字符串啊,字符串,那所以呢,我们就不用这么判断了,把这东西换过来,不写它了,直接写上它。
39:20
然后呢,把它住了这块呢,给它打开一保存一刷新走你。就抓住你了,哎,抓住你了啊,所以注意可以采用这个方式来判断啊,你就不能再刚才那么写了,写写什么呀,写这个active X object black in window,那我们这块可以完善一下了,这我就不写了啊,我把这东西干嘛呢?统一写到上边来一个什么呢?或者打开啊,我再来一个else if else if什么呢?来一个他如果他为true,那得证明什么呀,Alert,诶,你是IE11啊,我要枪毙了你,然后一保存,现在一刷新,咱们来这块火狐一刷新火狐吧,来看我们这块一刷新是不CH呀,然后我们这个IEIE111刷新。
40:12
是不是抓住了啊,就打到他了啊,包括你要看其他浏览器,IE9是不是也是这样,诶IE浏览器啊,I浏览器就OK了啊,所以这块通过这种方式来判断啊,主要是通过这个UA,但是唯独不一样的谁呀,我们这个IE11你不能通过UV判断,因为他给你做了做手脚,或者你可以干嘛呀,你可以通过这东西吧,也能判断,因为它是不是11.0啊,但是怕就怕什么呀,有一些浏览器它可能也是11.0,可能出现什么呀,误伤啊,可能出现误伤,那这个咱们就干嘛了,不会出现这个误伤了啊,不会出现误伤,好,那这一块呢,是我们的这个。一个判断,当然你这些判断是这样,以后遇到其他问题,判断思路呢还是一样的,但是主要还是找谁呀。转E啊,会判断IE了,其他的问题都不大啊,现在问题都大了,好,那这个呢,是我们这个navigator,我们这个浏览器这个信息这个对象,我们主要还是说的是我们这个user agent的这个属性啊,一定要学会怎么去用它去判断浏览器的信息啊,保存我们这儿呢,停一下。
我来说两句