0

Firefox アドオンでscrollイベントをエミュレートする必要があります。iframe以下のコードを使用しましたが、動作せずiframeスクロールが動きません。そして、私にとってもう1つの質問は、どのinitUIEvent方向のスクロールイベントをディスパッチする必要があるかをどのように知っているのですか? (水平または垂直)

var windows = require("window-utils"),
    selectedBrowser = windows.activeBrowserWindow.gBrowser.selectedBrowser,
    contentWindow = selectedBrowser.contentWindow,
    document = selectedBrowser.contentDocument;

obj = document.getElementById("scrollable_frame");

evt = document.createEvent("UIEvents");

evt.initUIEvent("scroll", true, true,
windows.activeBrowserWindow.gBrowser.selectedBrowser.contentWindow, 2);

obj.dispatchEvent(evt);
4

1 に答える 1

1

あなたのコードはイベントをうまくディスパッチすると思います。scrollただし、イベントをトリガーするのはフレームのスクロールであり、その逆ではないため、問題の解決には役立ちません。フレームをスクロールする必要がある場合は、直接ルートを選択できます。window.scrollByLinesまたはを使用しwindow.scrollByPagesます。

obj = document.getElementById("scrollable_frame");
obj.contentWindow.scrollByLines(1);

水平方向にスクロールするには、 を使用できますwindow.scrollBy。このコードはscroll、副作用としてイベントもトリガーします。

于 2012-04-28T20:16:10.437 に答える