在最新版本的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 */
}));
希望这能帮助