3

在最近版本的Firefox 31+的startScroll(E)的功能被改变,而应与startScroll(scrolldir,screenX,screenY)火狐startScroll和sendAsyncMessage

DIFF变化被称为: 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",所以我尝试过各种COM

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

但没有任何效果。我的问题

最低配置boostrap.js扩展可以在http://pastebin.com/azv1jePt

可以看到没有任何人有任何想法如何手动在Firefox中直接从bootstrap.js扩展新版本开始自动滚屏,而无需使用任何脚本?

感谢
Senicar

+0

这是一个我不会冒险的出场人:( – Noitidart 2014-09-19 14:10:48

+0

有趣的发现虽然:http://mxr.mozilla.org/mozilla-release/source/toolkit/content/widgets/browser.xml#948 – Noitidart 2014-09-19 14:21:42

+0

@Noi tidart感谢您的关注,我想我将不得不在mozilla irc频道上再次尝试我的运气,因为我无法弄清楚。 – senicar 2014-09-19 19:15:59

回答

0

什么工作对我来说是模拟从帧脚本中键鼠标按下事件(不需要调用startScroll也不sendAsyncMessage):

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

希望这有助于