Javascript 正在尝试模拟控制盘事件[Firefox]

Javascript 正在尝试模拟控制盘事件[Firefox],javascript,firefox,Javascript,Firefox,为了阐明我的示例,我想在打开的窗口的中心模拟一个滚动事件。这将影响给定页面上的主要滚动元素 以下是一些相关页面 这是我试过的 scroll_evt = new WheelEvent('wheel', { deltaY: 10.0, deltaMode: WheelEvent.DOM_DELTA_LINE, clientX: content.innerWidth/2, clientY: content.innerHeight/2 }); ->

为了阐明我的示例,我想在打开的窗口的中心模拟一个滚动事件。这将影响给定页面上的主要滚动元素

以下是一些相关页面

这是我试过的

scroll_evt = new WheelEvent('wheel', {
    deltaY:    10.0,
    deltaMode: WheelEvent.DOM_DELTA_LINE,
    clientX:   content.innerWidth/2,
    clientY:   content.innerHeight/2
});

-> wheel { target: null, buttons: 0, clientX: 520, clientY: 320, layerX: 0, layerY: 0 }
然而,尽管没有错误,发送事件似乎没有任何效果

window.dispatchEvent(scroll_evt);
-> true
所以我不禁要问:我的初始值设定项中是否缺少一些关键属性?
window
是否是事件的适当目标?我没有主意了

更新

这很有效。


我仍然很好奇
dispatchEvent

怎么了,你可以按如下位置获得一个元素:

var elem = document.elementFromPoint(content.innerWidth / 2, content.innerHeight / 2);
然后应用滚动条:

elem.scrollTop += 10;

窗口有什么问题。scrollBy(0,10)
?很抱歉,我不太明白您所说的“内容分区”是什么意思。您是说内容在其他元素中,需要滚动该元素而不是滚动窗口吗?在这种情况下,您可以使用
elem.scrollTop+=10
。这是可行的,但是还有一个额外的步骤,就是在层次结构中工作,直到我使用滚动条到达一个元素。我是否可以假设有一个滚动条,其中包含
elem.scrollHeight>elem.clientHeight?
(我是否可以生成元素的路径,或者我是否通过
elem.parentElement?
)@lap 1)是的。这是判断元素是否有滚动条的方法。2) 什么是“路径”以及你需要它做什么?我想知道我是否可以自上而下地工作,就像在
body
第一个,
elem
最后一样。看起来没有什么琐碎的方法可以做到这一点,但也没那么重要。顺便说一句,谢谢你的帮助。:)@拉普:我相信你问的是树遍历。有几种方法可以迭代DOM。
elem.scrollTop += 10;