在最新版本的Firefox 31+中,startScroll(e)函数已更改,应使用startScroll(scrolldir,screenX,screenY)调用
在更改之前,我可以从我的经典bootstrap.js扩展程序手动启动startScroll:
aWindow.gBrowser.selectedBrowser.startScroll(e);
我收到了关于使用sendAsyncMessage "Autoscroll:Start"的Mozilla IRC频道的提示,所以我尝试了各种组合
aWindow.gBrowser.selectedBrowser.startScroll("NSEW", e.screenX, e.screenY);
aWindow.gBrowser.selectedBrowser.messageManager.sendAsyncMessage("Autoscroll:Start", {scrolldir:"NSEW", screenX:e.screenX, screenY:e.screenY});
但没有任何作用。
可以在http://pastebin.com/azv1jePt
上看到我的问题的最小boostrap.js扩展有没有人知道如何直接从bootstrap.js扩展程序在较新版本的Firefox中手动启动自动滚动,而不使用任何 chrome 脚本?
感谢
Senicar
答案 0 :(得分:0)
对我有用的是从帧脚本模拟中间按钮mousedown事件(无需调用startScroll或sendAsyncMessage):
content.document.documentElement.dispatchEvent(new content.MouseEvent("mousedown", {
view: content,
bubbles: true,
cancelable: true,
button: 1,
screenX: /* anEvent.screenX */,
screenY: /* anEvent.screenY */
}));
希望这有帮助