firefox startScroll and sendAsyncMessage



在最新版本的Firefox 31+中,startScroll(e)函数已更改,应使用startScroll(scrolldir,screenX,screenY)调用

变更差异:https://hg.mozilla.org/integration/mozilla-inbound/diff/cc298e4b0f47/toolkit/content/widgets/browser.xml

在更改之前,我可以使用从我的经典bootstrap.js扩展手动启动startScroll

aWindow.gBrowser.selectedBrowser.startScroll(e);

我在mozilla IRC频道上收到了使用sendAsyncMessage"Autoscroll:Start"的提示,所以我尝试了的各种组合

aWindow.gBrowser.selectedBrowser.startScroll("NSEW", e.screenX, e.screenY);
aWindow.gBrowser.selectedBrowser.messageManager.sendAsyncMessage("Autoscroll:Start", {scrolldir:"NSEW", screenX:e.screenX, screenY:e.screenY});

但什么都不管用。

我的问题的最简单的boosrap.js扩展可以在http://pastebin.com/azv1jePt

有人知道如何在新版Firefox中直接从bootstrap.js扩展手动启动自动滚动,而不使用任何chrome脚本吗?

谢谢
Senicar

对我有效的是从帧脚本中模拟鼠标中键向下事件(无需调用startScroll或sendAsyncMessage):

content.document.documentElement.dispatchEvent(new content.MouseEvent("mousedown", {
    view: content,
    bubbles: true,
    cancelable: true,
    button: 1,
    screenX: /* anEvent.screenX */,
    screenY: /* anEvent.screenY */
}));

希望这能帮助

最新更新