我需要在我的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);
答案 0 :(得分:1)
我认为您的代码调度事件就好了。但它无助于解决您的问题,因为它是框架滚动触发scroll
事件,而不是反过来。如果您需要滚动框架,则可以选择直接路线:使用window.scrollByLines
或window.scrollByPages
:
obj = document.getElementById("scrollable_frame");
obj.contentWindow.scrollByLines(1);
要水平滚动,您可以使用window.scrollBy
。此代码还会触发scroll
事件作为副作用。