gpt4 book ai didi

javascript - MouseEvent.path 在 Firefox 和 Safari 中等效

转载 作者:可可西里 更新时间:2023-11-01 01:27:05 27 4
gpt4 key购买 nike

我正在使用 Polymer 1.0,当在 Chrome 中点击一个按钮时,会生成一个 MouseEvent。此 MouseEvent 对象有一个 path 属性,它是单击按钮的父元素的有序数组。然而,在 Firefox 和 Safari 中,生成的 click 没有 path 属性。 click 对象是否有提供相同信息的等效属性?

最佳答案

它不可用,但如果你真的想拥有这个属性,那么你可以像这样扩展 Event 对象的原生原型(prototype):

if (!("path" in Event.prototype))
Object.defineProperty(Event.prototype, "path", {
get: function() {
var path = [];
var currentElem = this.target;
while (currentElem) {
path.push(currentElem);
currentElem = currentElem.parentElement;
}
if (path.indexOf(window) === -1 && path.indexOf(document) === -1)
path.push(document);
if (path.indexOf(window) === -1)
path.push(window);
return path;
}
});

但是如果我是你,我不会扩展原型(prototype) - 我会创建一个如上所述的函数。

另外,如果您只想涵盖那些类型的事件,我会将 Event.prototype 更改为 MouseEvent.prototype。

关于javascript - MouseEvent.path 在 Firefox 和 Safari 中等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com