【问题标题】:Hover over an element using JavaScript?使用 JavaScript 将鼠标悬停在元素上?
【发布时间】:2019-07-21 05:57:56
【问题描述】:

注意:我想悬停元素而不是在悬停时触发事件。 (一种使用 Javascript 的自动悬停)

我想通过在 chrome 控制台中运行 JS 来随机对我墙上的 Facebook 帖子的 cmets 做出反应。

为此,我编写了这一行来测试列表中的第一个索引:

document.querySelectorAll('._6ijk a._6a-y')[0].click() 

当我手动将鼠标悬停在一个元素上并使用此代码时,它可以工作,选择器是:

document.querySelector("[aria-label=Love]").click()

但在悬停之前,"[aria-label=Love]" 没有这样的元素

但是,除了点赞按钮之外的所有其他反应都出现在悬停在让我陷入麻烦的点赞按钮上。有什么好的解决方案可以解决这种情况吗?

【问题讨论】:

  • facebook 上的 DOM 元素是动态创建的,当您将鼠标悬停时,会添加新元素。
  • 是的,有什么解决办法还是不可能的?
  • 尝试在该元素上触发 mouseenter 事件,它将创建动态 DOM
  • 你试过onmouseover 吗?
  • 是的,我试过了,但是没用

标签: javascript


【解决方案1】:

您首先需要创建一个Event,然后将其分派到您所需的 DOM 元素上。

这是在mouseover事件上创建的方法

var event = new MouseEvent('mouseover', {
  'view': window,
  'bubbles': true,
  'cancelable': true
});

然后自己将eventListener 添加到您的元素中。

yourelement = document.querySelector('css selector here');
yourelement.addEventListener('mouseover', function() {
      //something here
});

...最后是dispatchEvent

yourelement.dispatchEvent(event);

我希望它适用于您想要实现的任何目标! 干杯!

【讨论】:

  • 也感谢您的解释。它真的会对我和其他人有很大帮助。
猜你喜欢
  • 2020-01-03
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2011-06-02
  • 2011-11-08
  • 1970-01-01
  • 2013-07-14
  • 2017-09-18
相关资源
最近更新 更多