/**
* 获取事件冒泡路径,兼容 IE11,Edge,Chrome,Firefox,Safari
* 目前使用的地方:JVxeTable Span模式
*/
export function getEventPath(event) {
let target = event.target
let path = (event.composedPath && event.composedPath()) || event.path
if (path != null) {
return (path.indexOf(window) < 0) ? path.concat(window) : path
}
if (target === window) {
return [window]
}
let getParents = (node, memo) => {
const parentNode = node.parentNode
if (!parentNode) {
return memo
} else {
return getParents(parentNode, memo.concat(parentNode))
}
}
return [target].concat(getParents(target, []), window)
}
获取事件冒泡路径,兼容 IE11,Edge,Chrome,Firefox,Safari
原创上一篇:vue3--路由配置
下一篇:vue3定义全局方法
-
Chrome扩展程序开发新手指南:事件监听器的应用技巧
最近我在开发Chrome浏览器插件时,遇到了一个需要脚本初始化的问题。在插件被安装后或浏览器标签页被刷新时,我需要重新初始化插件。为了实现这一点,我研究了Chrome提供的几个API接口,它们分别是chrome.runtime.onInstalled.addListener、chrome.runtime.onStartup.addListener以及chrome.tabs.onUpdated.addListener。在本文中,我将对这三个关键事件监听器进行梳理,并详细说明它们之间的区别。
chrome 扩展程序 JavaScript Chrome开发 前端 -
兼容IE11
<head> <!--兼容IE11--> <!--webkit core--> <meta name="renderer" content="webkit"/> <meta name="force-render
edge webview elementui chrome .net -
Chrome Edge Firefox Safari 如何清除 DNS 缓存
Chrome Edge Firefox Safari 如何清除 DNS 缓存
firefox safari chrome DNS 缓存 -
Vue项目兼容IE11
vue cli项目中使用@babel/polyfill兼容ie11。 解决 DOM7011: 此页上的代码
VUE兼容IE11 HTML1300:进行了导航 vuecli兼容ie babel/polyfill vue -
firebug for IE6+, Firefox, Opera, Safari and Chrome
vascript" src="https://getfirebug.com/firebug-lite.js"></script> 或者开发模式...
Safari Opera Chrome Firebug Firefox -
Javascript事件热键兼容ie|firefox
<textarea onkeydown="keyHanlder(event)"></textarea><script>function keyHanlder(e){if(e.ctrlKey&&e.keyCode==13){alert('"Ctrl+Enter"');if(e.preventDefault)e.preventDefault();else e.returnValue=false;}}</script>非IE浏览器调用函数会自动返回参数event,通过它可以获取键盘
热键 调用函数 microsoft javascript JavaScript