将鼠标悬停在使用JavaScript的元素上吗?

时间:2019-07-21 05:57:56

标签: javascript

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

我想通过在chrome控制台中运行JS对Facebook留言在我墙上的评论做出随机反应。

我为此编写了以下代码来测试列表中的第一个索引:

java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@40d9456 does not exist
        at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9415)
        at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9406)
        at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2387)
        at com.android.server.wm.Session.remove(Session.java:193)
        at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3290)
        at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5917)
        at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3626)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.os.HandlerThread.run(HandlerThread.java:61)
        at com.android.server.ServiceThread.run(ServiceThread.java:46)

当我手动将鼠标悬停在某个元素上并使用此代码时,它就起作用了,选择器针对的是:

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

但在悬停之前,document.querySelector("[aria-label=Love]").click() 没有这样的元素

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

1 个答案:

答案 0 :(得分:2)

您首先需要创建一个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);

我希望它对您要达到的目标都有效! 干杯!