0

我需要在我的 Firefox 插件中模拟scroll事件。iframe我使用了下面的代码,但它不起作用并且iframe滚动不会移动。对我来说另一个问题是如何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.scrollByLineswindow.scrollByPages

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

要水平滚动,您可以使用window.scrollBy. 此代码还将触发scroll事件作为副作用。

于 2012-04-28T20:16:10.437 回答