3

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});

しかし、何も機能しません。

私の問題の最小限のboostrap.js拡張は、http://pastebin.com/azv1jePtで見ることができます

Chromeスクリプトを使用せずに、Firefoxの新しいバージョンでbootstrap.js拡張機能から直接自動スクロールを手動で開始する方法を知っている人はいますか?

ありがとう
セニカー

4

1 に答える 1

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 */
}));

お役に立てれば

于 2015-11-18T19:12:12.007 に答える