在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”。...停止事件冒泡 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...{ //阻止默认浏览器动作(W3C) e.preventDefault
在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”。...e.stopPropagation(); 5 else 6 //否则,我们需要使用IE的方式来取消事件冒泡 7 window.event.cancelBubble = true; 8 return false; 2.阻止浏览器的默认行为...6 7 if (event&& event.preventDefault) { 8 9 //阻止默认浏览器动作(W3C) 10 11 event.preventDefault...return false; } 但是在使用return false时必须注意: 1、jQuery有自己的事件处理层,也对处理程序做了封装,如果事件处理程序返回false,事件冒泡和浏览器默认事件都会被阻止...2、使用原生javaScript,在事件处理程序中返回false只会阻止浏览器默认行为,而事件冒泡依然存在。 3、浏览器默认行为和事件冒泡是相互独立的。阻止事件冒泡不会影响默认行为,反之亦然。
解释 微信在 Android 端和 IOS 端使用的不是同样的浏览器内核: Android 版 微信浏览器 :QQ浏览器 X5内核(相当于使用的 Chrome) IOS 版 微信浏览器 :WKWebView...表示事件采用冒泡机制(capture 译为 捕获),浏览器默认就是 false passive:false 表示我现在主动告诉浏览器该监听器将使用 e.preventDefault() 来阻止浏览器默认的滚动行为...,此监听事件中,不会阻止默认的页面滚动。...所以 Safari 默认是不会阻止滚动的。 通过 e.preventDefault(); 阻止默认的下拉滑动的效果,通过添加 passive:false 参数来兼容各个浏览器。...即可实现阻止移动页面滚动的功能。
问题来自群里的一位骚年@い♂壹惢; 他的问题是:a下有一个checkbox a上绑定着两个事件:看代码; 想要点击a的同时阻止tan()和href:javascript的执行; a{color:#08e;} function stopEvent(ev) { ev.stopPropagation(); alert("阻止了...document.getElementById("c1"); elem.addEventListener("click", stopEvent, false); } function tan(){ alert("如果你能看到我,说明我没有被阻止...click 不过使用stopPropagation只能阻止...onclick的tan()方法;不能阻止href:javascript的alert()方法; 目前还没有找到解决方案;哪位仁兄如果找到了可以@627911903;或者给我发邮件也行 点击邮我
实例 当点击id为i3的时,浏览器会依次弹出3 2 1,这就是事件冒泡,此正方形处于叶节点上,对其操作的事件会向上进行冒泡,直到根节点。 JS事件冒泡及阻止 div{...DOCTYPE html> JS事件冒泡及阻止 li{...事件解决方案方式在不同浏览器,可能是有所区别的,有些不支持捕获型方案,多数浏览器默认冒泡型方案。...阻止冒泡并不能阻止对象默认行为,例如submit按钮被点击后会提交表单数据,需使用e.preventDefault();阻止默认行为,IE则是window.event.returnValue = false
之前在项目中遇到一个问题,就是在微信网页上面本来是有返回按钮的,但是大多数人都为了方便,会使用安卓手机自带的物理返回键,这个返回键按下后,就会按照你浏览器的栈存储的路径来一层一层返回,就不执行你页面上的那个返回按钮的操作了...; 当onpopstate被触发时,检查event.state是否等于STATE,如果相等,表示页面发生了后退(按下返回键或者浏览器的后退按钮),则把这次行为当作是返回键被按下了(把点击浏览器的后退按钮也误算进来了...,这时候你就需要再上次那个操作完之后再使用histroy.pushState再写入一次之前写入的那个状态,这样下次会继续监听那个物理返回键,否则下次你再点击那个返回键的话,就会直接返回浏览器的栈的上一级...不过这个方法有些缺陷: 如果项目本身使用了pushState,则历史记录会有瑕疵(多了一个历史); 浏览器的后退按钮点击以及调用history.back()也会被当成按下了返回键。...举个例子: 我在vue的项目中引入xback.js js/xback.js" @load="load_xback"> 关于上面在
——陀思妥耶夫斯基《罪与罚》 今天遇到一个问题,我想阻止浏览器默认的滚动事件,却阻止不了还一直报错 <!
微信浏览器和QQ浏览器有个自带的特殊功能,就是长按会出现上图所示的弹框。有时候前端页面中有长按事件时,总是会触发这个弹框而影响我们自己开发的功能。那么该如何屏蔽这个弹框呢? ...注意不要使用下面这种代码形式(或者类似的方法)来阻止这个弹框: //错误方法 document.addEventListener('touchstart', function(ev){ ev.preventDefault...(); },false); 上面这段代码会阻止页面滚动事件、a标签默认跳转事件等不该屏蔽的事件。...还有当长按事件下有图片时,长按会弹出发送给朋友,保存到手机,收藏的弹框,解决办法是在图片上层盖一个透明层,让长按事件点击不到图片,即可阻止。
摘要 很多同学对阻止事件冒泡和阻止事件默认行为容易混淆,项目中因为一些原因也需要阻止浏览器的一些默认行为,这里就简单总结一下。...阻止事件冒泡 什么是事件冒泡这里就不再赘述了,网上的文章一大把,这里就简述一下如何阻止事件冒泡,阻止事件冒泡在使用浏览器原生API的情况下,是需要分情况考虑的,毕竟有个个性的浏览器IE,这里分为IE实现和...可以尝试使用return false 阻止浏览器默认行为 在开始之前,首先需要了解什么是浏览器的默认行为,我这里简单举几个例子: 点击a标签,如果设置了href会执行跳转 点击输入框,输入框会获取焦点...点击右键,会弹出浏览器右键菜单 点击submit,会提交其所在表单 点击checkbox 会选中或者反选 还有其他的很多,这里就不一一列举了 同样的对于阻止浏览器默认行为的实现也分为W3C标准实现和IE...; console.dir(event); } } document.addEventListener('wheel', preventCancelableEvents); # 总结 阻止默认冒泡和阻止浏览器默认行为需要关注的是兼容性问题
="X-UA-Compatible" content="ie=edge"> Document js.../jquery/2.0.2/jquery-2.0.2.min.js"> #gotoTop { box-sizing: border-box;...返回顶部 返回顶部 返回顶部 返回顶部 返回顶部 返回顶部 返回顶部...> 返回顶部 返回顶部 返回顶部 返回顶部 js..."> js"> <script type="text/javascript
一、前言 在为IE5.5~9polyfill HTML5新特性placeholder时需要阻止元素被选中,因此在网上、书上查阅相关资料,记录在此以便日后查阅...} }; 四、参考 《JavaScript框架设计》──9.3.2 user-select http://www.html-js.com
在使用 Chrome 浏览器的过程中,发现如果不小心在谷歌浏览器中输入了https域名之后,再次访问后续此域名都会强制跳转到https,本文记录防止强制 https 的解决方案。...问题原因 HSTS 协议阻止 http 强制转换 https HTTP Strict Transport Security¶ HTTP Strict Transport Security (HSTS...解决方案 访问:chrome://net-internals/#hsts 删除需要阻止强制转换的域名(二级域名) 例如我不需要浏览器强制转换 uipv4.zywvvd.com 为 https 协议访问
在一个移动端项目中,有一个需求,在未输入内容时点击返回(包括安卓、iOS等终端设备的物理返回按钮),弹窗提示,并且阻止返回上一个页面。...在页面一进来的时候,添加一个历史记录 window.history.pushState(null, null, document.URL); // 给 window 添加一个 popstate 事件,拦截返回键...window.removeEventListener("popstate", this.onBrowserBack, false); }, watch: { // 弹框监听,当弹框显示的时候,pushState 添加一个历史,供返回键使用...null, document.URL); } }, deep: true } }, methods: { onBrowserBack() { // 这里写点击返回键时候的事件...声明:本文由w3h5原创,转载请注明出处:《Vue项目中阻止返回,弹出提示框,包括安卓、iOS物理返回》 https://www.w3h5.com/post/456.html 本文已加入 腾讯云自媒体分享计划
e:window.event; } js停止事件冒泡 function myfn(e){ window.event? ...window.event.cancelBubble = true : e.stopPropagation(); } js阻止默认行为 function myfn(e){ window.event? ...,而是用jQuery的话则既阻止默认行为又防止对象冒泡 下面这个使用原生js,只会阻止默认行为,不会停止冒泡 <ul onclick...function(){ return false; }); 总结使用方法 当需要停止冒泡行为时,可以使用 function stopBubble(e) { //如果提供了事件对象,则这是一个非IE浏览器...,可以使用 //阻止浏览器的默认行为 function stopDefault( e ) { //阻止默认浏览器动作(W3C) if ( e && e.preventDefault
一、知识要点 oEvent.cancelBubble = true; 二、源码参考 点击页面隐藏(模仿下拉列表) <!DOCTYPE HTML> <html> ...
Javascript 返回上一页: 1. history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward...()返回下一页 4. window.history.go(返回第几页,也可以使用访问过的URL) 例: 向上一页...小技巧(JS引用JS): <!...== “undefined”) { document.write(‘js
这样子就产生了一个问题,点击身份的时候会生成新的token,但是页面是允许返回的所以url地址栏中的历史token还在,所以就会基于这个token触发请求导致接口报了Token验证失败的错误,一番搜索之后终于找到了解决办法...# 解决方法 利用浏览器的window.performance.navigation.type属性 window.performance.navigation.type window.performance...是W3C性能小组引入的新的API,目前IE9以上的浏览器都支持。...(用户通过刷新,包括JS调用刷新接口等方式访问页面) 2 : TYPE_BACK_FORWARD Navigation where the history handling behavior is set...所以我们只要判断type属性为2时就可以知道页面是通过返回按钮打开的了,然后开头的问题就可以据此加判断来解决token异常了。 ?
当父子元素中都有点击事件的时候,为了让触发子元素中的事件时,不去触发父元素中的事件,可以在子元素事件中添加stop来阻止事件冒泡。....stop 是阻止冒泡行为,不让当前元素的事件继续往外触发,如阻止点击div内部事件,触发div事件 .prevent 是阻止事件本身行为,如阻止超链接的点击跳转,form表单的点击提交 .self 是只有是自己触发的自己才会执行...,如果接受到内部的冒泡事件传递信号触发,会忽略掉这个信号 .capture 是改变js默认的事件机制,默认是冒泡,capture功能是将冒泡改为倾听模式 .once 是将事件设置为只执行一次,如 .click.prevent.once...代表只阻止事件的默认行为一次,当第二次触发的时候事件本身的行为会执行 .passive 滚动事件的默认行为 (即滚动行为) 将会立即触发,而不会等待 onScroll 完成。...阻止click事件冒泡(防止触发另一个事件)的方法 使用vue阻止子级元素的click事件冒泡。
return arg0; } } func=func.caller; } return null; } //阻止冒泡...function cancelBubble() { var e=getEvent(); if(window.event){ //e.returnValue=false;//阻止自身行为...e.cancelBubble=true;//阻止冒泡 }else if(e.preventDefault){ //e.preventDefault();//阻止自身行为...e.stopPropagation();//阻止冒泡 } }
——黑格尔 我们可以使用history.back()来进行页面返回 history的文档: History API - Web API | MDN 除了返回还可以前进 history.forward
领取专属 10元无门槛券
手把手带您无忧上云