谷歌浏览器api事件 谷歌浏览器api事件怎么解决

大家好,感谢邀请,今天来为大家分享一下谷歌浏览器api事件的问题,以及和谷歌浏览器api事件怎么解决的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

谷歌浏览器api事件 谷歌浏览器api事件怎么解决

本文目录

  1. 谷歌浏览器怎么调试js
  2. 谷歌浏览器调试js的步骤 谷歌浏览器怎样调试javascript
  3. vue中通过history api拦截浏览器的前进后退按钮事件

一、谷歌浏览器怎么调试js

首先我们打开开发者工具,你可以直接在页面上点击右键,然后选择审查元素或者在Chrome的工具中找到或者你直接记住这个快捷方式: Ctrl+Shift+I(或者Ctrl+Shift+J直接打开控制台),或者直接按F12。

  打开的开发者工具就长下面的样子,建议大家将开发者工具弹出作为一个独立的窗口:

这个就是查看、编辑页面上的元素,包括HTML和CSS:

  左侧就是对页面HTML结构的查看与编辑,你可以直接在某个元素上双击修改元素的属性,或者你点右键选;Edit as Html;直接对元素的HTML进行编辑,或者删除某个元素,所有的修改都会即时在页面上得到呈现。(注:看到上面右键菜单的最后一个选项;审查元素了么?这是不是说明这个开发者工具的页面也是HTML来的呢?你点一下就知道了哦,嘿嘿)

你还可以对某个元素进行监听,在JS对元素的属性或者HTML进行修改的时候,直接触发断点,跳转到对改元素进行修改的JS代码处:

  Elements标签页的右侧可以对元素的CSS进行查看与编辑修改:

  你还可以通过这里看到各CSS选择器设置的CSS值的覆盖情况。

下面的Metrics可以看到元素占的空间情况(宽、高、Padding、Margin)

  注意到上面的Properties没有?这个很有用哦,可以让你看到元素具有的方法与属性,比查API手册要方便得多哦(要注意某些方法和属性在IE、FireFox等其他浏览器下面的支持情况哦)。

  Resources标签页可以查看到请求的资源情况,包括CSS、JS、图片等的内容,同时还可以查看到存储相关的如Cookies、HTML5的Database和LocalStore等,你可以对存储的内容编辑和删除。

这里的CSS文件有一个好玩的特性,你可以直接修改CSS文件,并且修改即时生效哦:

  Network标签页对于分析网站请求的网络情况、查看某一请求的请求头和响应头还有响应内容很有用,特别是在查看Ajax类请求的时候,非常有帮助。注意是在你打开Chrome开发者工具后发起的请求,才会在这里显示的哦。

点击左侧某一个具体去请求URL,可以看到该请求的详细HTTP请求情况:

  我们可以在这里看到HTTP请求头、HTTP响应头、HTTP返回的内容等信息,对于开发、调试,都是很有用的。

很明显,这个标签页就是查看JS文件、调试JS代码的,直接看下图的说明:

  还有你可以打开Javascript控制台,做一些其他的查看或者修改:

  你甚至还可以为某一XHR请求或者某一事件设置断点:

注意这个Timeline的标签页不是指网络请求的时间响应情况哦(这个在Network标签页里查看),这个Timeline指的JS执行时间、页面元素渲染时间:

  点击底部的Record就可以开始录制页面上执行的内容。

这个主要是做性能优化的,包括查看CPU执行时间与内存占用:

这个对于优化前端页面、加速网页加载速度很有用哦(相当与Yslow):

  点击run按钮,就可以开始分析页面,分析完了就可以看到分析结果了

  它甚至可以分析出页面上样式表中有哪些CSS是没有被使用的哦:

  这个除了查看错误信息、打印调试信息(console.log())、写一些测试脚本以外,还可以当作Javascript API查看用。

例如我想查看console都有哪些方法和属性,我可以直接在Console中输入;并执行:

  怎么样,一目了然了吧?再例如我想查看日期函数都有哪些方法:

  (注:注意在这里看到的某些方法和属性是ES5新增的,记得兼容其他浏览器的支持情况哦)

Google Chrome除了简洁、快速,现在的Chrome的插件也非常的丰富了。而对于web开发者来说,Chrome对于HTML5、CSS3等一些新标准的支持也是比较完善的,而且Chrome的开发者工具我个人认为真的非常好用,这就是为什么我向web开发者推荐使用Chrome的原因。

二、谷歌浏览器调试js的步骤 谷歌浏览器怎样调试javascript

1、首先我们打开开发者工具,你可以直接在页面上点击右键,然后选择审查元素或者在Chrome的工具中找到或者你直接记住这个快捷方式: Ctrl+Shift+I(或者Ctrl+Shift+J直接打开控制台),或者直接按F12。

2、打开的开发者工具就长下面的样子,建议大家将开发者工具弹出作为一个独立的窗口。

这个就是查看、编辑页面上的元素,包括HTML和CSS。

左侧就是对页面HTML结构的查看与编辑,你可以直接在某个元素上双击修改元素的属性,或者你点右键选;Edit as Html;直接对元素的HTML进行编辑,或者删除某个元素,所有的修改都会即时在页面上得到呈现。

你还可以对某个元素进行监听,在JS对元素的属性或者HTML进行修改的时候,直接触发断点,跳转到对改元素进行修改的JS代码处。

Elements标签页的右侧可以对元素的CSS进行查看与编辑修改。

你还可以通过这里看到各CSS选择器设置的CSS值的覆盖情况。

下面的Metrics可以看到元素占的空间情况(宽、高、Padding、Margin)。

注意到上面的Properties没有?这个很有用哦,可以让你看到元素具有的方法与属性,比查API手册要方便得多哦(要注意某些方法和属性在IE、FireFox等其他浏览器下面的支持情况哦)。

Resources标签页可以查看到请求的资源情况,包括CSS、JS、图片等的内容,同时还可以查看到存储相关的如Cookies、HTML5的Database和LocalStore等,你可以对存储的内容编辑和删除。

这里的CSS文件有一个好玩的特性,你可以直接修改CSS文件,并且修改即时生效哦。

Network标签页对于分析网站请求的网络情况、查看某一请求的请求头和响应头还有响应内容很有用,特别是在查看Ajax类请求的时候,非常有帮助。注意是在你打开Chrome开发者工具后发起的请求,才会在这里显示的哦。

点击左侧某一个具体去请求URL,可以看到该请求的详细HTTP请求情况:

我们可以在这里看到HTTP请求头、HTTP响应头、HTTP返回的内容等信息,对于开发、调试,都是很有用的。

很明显,这个标签页就是查看JS文件、调试JS代码的,直接看下图的说明。

还有你可以打开Javascript控制台,做一些其他的查看或者修改。

你甚至还可以为某一XHR请求或者某一事件设置断点。

注意这个Timeline的标签页不是指网络请求的时间响应情况哦(这个在Network标签页里查看),这个Timeline指的JS执行时间、页面元素渲染时间。

点击底部的Record就可以开始录制页面上执行的内容。

这个主要是做性能优化的,包括查看CPU执行时间与内存占用。

这个对于优化前端页面、加速网页加载速度很有用哦(相当与Yslow)。

点击run按钮,就可以开始分析页面,分析完了就可以看到分析结果了。

它甚至可以分析出页面上样式表中有哪些CSS是没有被使用的哦。

这个除了查看错误信息、打印调试信息(console.log())、写一些测试脚本以外,还可以当作Javascript API查看用。

例如我想查看console都有哪些方法和属性,我可以直接在Console中输入;并执行:

怎么样,一目了然了吧?再例如我想查看日期函数都有哪些方法:

(注:注意在这里看到的某些方法和属性是ES5新增的,记得兼容其他浏览器的支持情况哦)

上述给大家讲解的便是谷歌浏览器调试js的步骤,有这个需求的用户们可以了解一下上面的内容吧,希望可以帮助到大家。

三、vue中通过history api拦截浏览器的前进后退按钮事件

1、现在 vueRouter的模式基本都是 history模式,它的实现是基于原生事件 popstate来实现的。

2、先看看 MDN文档对这个 api的解释:

3、也就是说我们点击浏览器的前进、后退按钮或者在 js中执行 history.back()、 history.forward()就会触发 popstate事件。

4、那这个 api和 vueRouter的 history模式有什么关系呢?

5、我们知道vue项目其实是个单页应用,大致结构如下:

6、所以我们在项目中各种跳转切换页面,都不会去请求 html资源,都是在一个 html中完成 dom切换,也就是更换 route-view标签里面的内容,但是我们却可以通过浏览器的前进后退按钮进行页面切换,实现的关键就是去监听 popstate事件,根据相关信息去更换 route-view标签里面的内容。

7、到这里需要再介绍一个 api, history.pushstate

8、这个 api会往浏览器的历史栈添加一个状态,举个不太切当的例子:

9、比如现在在A页面,然后从A页面跳转到B页面,然后在B页面执行 history.pushState(),此时点击浏览器的后退按钮不会返回A页面,而还是在B页面。

10、两个 api的 MDN文档,推荐看一遍哦:

11、所以 vueRouter的 history模式简单来说就是监听 popstate事件,去执行切换显示 dom的事件;然后当路由切换时,执行了 history.pushState(),然后手动触发一遍切换显示 dom的事件。

12、现在回到标题,在 vue中如何拦截浏览器的前进后退按钮呢?最近刚好遇到一个需求,需要此功能来实现:

13、列表页有很多数据,每条数据只展示基础信息,然后点击每条 item,要展示每条 item的详情,跳转到详情页。

14、这种需求非常常见,也有很多种办法实现,比如动态路由,但是如果是动态路由,那么返回列表页的时候,列表页就会刷新,在没有 keep-alive的情况。交互不太友好,我一般都是通过组件切换去实现:

15、列表通过 v-show显示隐藏,详情组件通过 v-if来触发初始化。但这样写又有一个问题,当显示详情页的时候,通过浏览器的后退按钮是回不到列表页的,因为他们在同个组件同个路由中,只能通用自己写的返回按钮来实现,为了考虑用户习惯的行为,就要实现在详情组件中点击后退按钮时能返回到列表页。

16、结合上面所说,在进入详情组件的时候,把这个行为当成进入一个新页面,所以就要往浏览器会话的历史堆栈中添加一个状态:

17、 history.state储存了当前浏览器会话的信息,包括前进是什么状态,后退是什么状态,上面例子中我往里面添加了一个 id; history.pushState有三个参数,第一个参数就是 state,第二个参数可以忽略,第三个参数 url可选, vueRouter的切换就是通过第三个参数来指定,如果不传第三个参数,当前 url就不会改变。

18、当执行了上面的 goDetail方法后,就会显示详情组件。假如列表页的路由的/list,从/home路由跳转过来的,那当显示详情页的时候,点击浏览器的后退按钮,因为已经执行了 history.pushState,所以不会返回到/home路由,还是在/list路由。

19、那么怎么实现当在详情组件的时候,点击后退按钮隐藏详情组件,显示列表呢?

20、这时候就需要监听 popstate事件了,我在 history.pushState的时候,往 state中添加了一个标识, key为 id,通过判断是否有这个标识来切换组件:

21、当显示详情组件的时候,点击后退按钮,触发了 popstate事件, history.state回到未执行 history.pushState的状态,也就是 history.state没有 id这个标识,所以会隐藏掉详情组件;此时,再点击浏览器的前进按钮, history.state就会返回到执行了 history.pushState的状态,有 id这个标识,就会显示详情组件。

22、这样就显示了通过浏览器的前进后退来控制同个路由下组件的切换。

23、本文基于在一个组件中切换列表与某条数据的详情需求来说,对于涉及到的两个 history api还有很多理解不足的地方,如果你有更好的见解,请指教。

谷歌浏览器api事件和谷歌浏览器api事件怎么解决的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

声明:信息资讯网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者东方体育日报所有。若您的权利被侵害,请联系 删除。

本文链接:http://www.gdxhedu.com/news/157137.html