首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

js 停止事件冒泡 阻止浏览器的默认行为

在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”。...浏览器默认行为: 在form中按回车键就会提交表单;单击鼠标右键就会弹出context menu. a标签 1..停止事件冒泡 JavaScript代码 1 //如果提供了事件对象,则这是一个非IE浏览器...return false; } 但是在使用return false时必须注意: 1、jQuery有自己的事件处理层,也对处理程序做了封装,如果事件处理程序返回false,事件冒泡和浏览器默认事件都会被阻止...2、使用原生javaScript,在事件处理程序中返回false只会阻止浏览器默认行为,而事件冒泡依然存在。 3、浏览器默认行为和事件冒泡是相互独立的。阻止事件冒泡不会影响默认行为,反之亦然。...注意: 有一些浏览器行为是在事件处理程序执行前发生的,也就是说这些默认行为是无法取消的,如:在大部分浏览器上鼠标移到一个超链接上超链接的样式会发生改变,这个动作是发生在focus事件之前的,是focus

5.2K120

JavaScript 事件循环:从起源到浏览器再到 Node.js

本文从三个角度来研究 JavaScript 的事件循环: 为什么是事件循环 事件循环是什么 浏览器与 Node.js事件循环差异 为什么是事件循环 JavaScript 是网景 (Netscape)...所以本质的执行顺序还是: 一次外部事件 所有内部事件 HTML 渲染 回到到 1 浏览器与 Node.js事件循环差异 根据本文开头我们讨论的事件循环起源,很容易理解为什么浏览器与 Node.js...至于内在的差异,有一个很重要的地方是 Node.js (libuv)在最初设计的时候是允许执行多次外部的事件再切换到内部队列的,而浏览器端一次事件循环只允许执行一次外部事件。...关于浏览器与 Node.js事件循环,如果你要问我那边更加简单,那么我肯定会说是 Node.js事件循环更加简单,因为它的多个外部队列是可枚举的并且优先级是固定的。...造成浏览器端与 Node.js事件循环的差异的一个很大的原因在于 。

1.1K30

一篇文章搞懂浏览器Js事件循环机制

浏览器事件循环机制 前言 在初次入门学习和使用 JavaScript 的过程中,相信遇到过许多程序执行顺序及结果与预期不一致的问题,在查阅资料的过程中了解到原来是程序的执行有同步与异步之分;与此同时也会看到许多有关概念...但是 JS 是一门单线程语言,同一时间内做一件事。...这样一来无疑增加了复杂性,所以 JS 成为了单线程。虽然说多线程处理起来也很高效,但对于当时直接服务于浏览器用户的 JS 来说,尽可能避免过度复杂,能更简单的处理相对好点吧。...I/O 常见微任务 Promise.then catch finally MutationObserver (仅浏览器提供) process.nextTick (仅 node 提供) 三、事件循环机制...为了确保事件处理正常进行,主线程不阻塞。所以有了解决方案 Event Loop,事件循环线程是独立于主线程的,并且一直存在直到整个脚本环境被关闭

84030

浏览器和Node.js的EventLoop事件循环机制知多少?

写在前面 无论是浏览器端还是服务端Node.js,都在使用EventLoop事件循环机制,都是基于Javascript语言的单线程和非阻塞IO的特点。...Idle、Prepare阶段:Node内部的闲置和预备阶段 Poll阶段:检索新的 I/O 事件;执行与 I/O 相关的回调(几乎所有情况下,除了关闭的回调函数,那些由计时器和 setImmediate...Close回调阶段:一些关闭的回调函数,如:socket.on('close', ...)。 浏览器端任务队列每轮事件循环仅出队一个回调函数,接着去执行微任务队列。...此时浏览器的渲染时间就没必要小于16.6ms,因为渲染了屏幕也不会进行展示, 当然浏览器也不能保证每16.6ms会渲染一次。此外,浏览器渲染还会收到处理器的性能以及js执行效率等因素的影响。...requestAnimationFrame不是EventLoop中的宏任务,或者说它并不在EventLoop的生命周期中,只是浏览器又开发的一个在渲染前发生的新hook。

1.4K20

js 停止事件冒泡 阻止浏览器的默认行为(阻止a标签跳转 )

在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”。...停止事件冒泡 JavaScript代码 //如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation ) //因此它支持W3C的stopPropagation(...)方法 e.stopPropagation();  else //否则,我们需要使用IE的方式来取消事件冒泡  window.event.cancelBubble = true; return false...; 阻止浏览器的默认行为 JavaScript代码           //编辑文章时阻止a标签跳转 $("#final_content").find("a").click...(function(e){ //如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.preventDefault

5.8K40

#Vue 简单的 store 模式

当错误出现时,我们现在也会有一个 log 记录 bug 之前发生了什么` 2、引入 store / index.js // 在需要使用 store 的 .vue 文件里面引入 import store...} }) `这样就和普通的 data 数据一样使用了` ​ `接着我们继续延伸约定,组件不允许直接变更属于 store 实例的 state,而应执行 action 来分发 (dispatch) / 事件通知...localStorage: 是永久存储,浏览器关闭后数据不会丢失,除非主动删除数据。当关闭页面后重新打开,会读取上一次打开的页面数据。...sessionStorage: 在当前浏览器窗口关闭后自动删除。...} } export default store // 在 App.vue 中添加 mounted() { // 监听当浏览器窗口关闭或者刷新时 // window.addEventListener

1.2K20

h5中performance.timing轻松获取网页各个数据 如dom加载时间 渲染时长 加载完触发时间

在控制台中输入window.performance.timing(html5的属性); 各字段的含义: · navigationStart:当前浏览器窗口的前一个网页关闭,发生unload...· fetchStart:返回浏览器准备使用HTTP请求读取文档时的Unix毫秒时间戳。该事件在网页查询本地缓存之前发生。...· responseEnd:返回浏览器从服务器收到(或从本地缓存读取)最后一个字节时(如果在此之前HTTP连接已经关闭,则返回关闭时)的Unix毫秒时间戳。...· fetchStart:返回浏览器准备使用HTTP请求读取文档时的Unix毫秒时间戳。该事件在网页查询本地缓存之前发生。...· responseEnd:返回浏览器从服务器收到(或从本地缓存读取)最后一个字节时(如果在此之前HTTP连接已经关闭,则返回关闭时)的Unix毫秒时间戳。

3.3K10

javascript如何监听页面刷新和页面关闭事件

这里就给大家讲讲javascript的onbeforeunload()和onunload()两个事件。 相同点: 两者都是在对页面的关闭或刷新事件作个操作。...不同点: unbeforeunload()事件执行的顺序在onunload()事件前发生。...onunload()事件是无法阻止页面关闭的。...浏览器的兼容 onunload: IE6,IE7,IE8 中 刷新页面、关闭浏览器之后、页面跳转之后都会执行; IE9 刷新页面 会执行,页面跳转、关闭浏览器不能执行; firefox(包括firefox3.6...) 关闭标签之后、页面跳转之后、刷新页面之后能执行,但关闭浏览器不能执行; Safari 刷新页面、页面跳转之后会执行,但关闭浏览器不能执行; Opera、Chrome 任何情况都不执行。

11.6K30

初识 Electron

第一个 Electron 应用 官网提供了一个开箱即用的例子,在这里建议大家,node 的版本最好更新至当前发行版本或长期支持版本,避免在项目过程中产生未知问题。...创建和控制浏览器窗口 // main.js const { app, BrowserWindow } = require('electron') app.on('ready', () => {...当 main.js 文件修改时,我们都需要关闭当前 electron ....渲染进程通过 ipcRenderer.send() 方法进行消息传递,第一个参数为 string 的事件名称,第二个参数为事件内容,可为任意格式 // renderer.js const { ipcRenderer...,需要跟传递方事件名一致,第二个参数为回调函数,该函数参数为事件对象 event 和事件内容 ...args // main.js const { app, BrowserWindow, ipcMain

1.6K82

精读《深入了解现代浏览器二》

此时导航会被确认,浏览器的各个状态(比如导航状态、前进后退历史)将会被修改,同时为了方便 tab 关闭后快速恢复,会话记录会被存储在硬盘。 额外步骤,加载完成。...注意此时 js 可能会继续加载远程资源,但这都是加载状态完成后的事了。...要注意的是,当执行跳转时,会触发原网站 unload 等事件(网页生命周期),所以这个由旧的 renderer process 响应,而新网站会创建一个新的 renderer process 处理,当旧网页全部关闭时...UI thread 处理浏览器 UI 的展现与用户交互,比如当前加载的状态变化,历史前进后退,浏览器地址栏的输入、校验与监听按下 Enter 等事件,但不会涉及诸如发送请求、解析网页内容、渲染等内容。...即宁可浪费潜在资源,也要让事物尽可能的并发,这些从提前创建 renderer process、提前发起 network process 都能看出来。

36240
领券