【发布时间】:2014-01-22 14:13:02
【问题描述】:
我试图在jsdom 下加载的窗口上触发scroll 事件或keypress 事件。我已经使用jsdom.jsdom() 函数加载了窗口,并且它加载了外部资源(即页面本身上的脚本)。基本上我试图触发这些事件,以便页面上的 javascript 可以监听这些事件并加载下一页数据,因为页面在滚动到底部时具有自动加载功能。但是我在触发scroll 事件时遇到了麻烦,更不用说将scroll 触发到页面底部了。它只是卡住了,什么都没有发生。
我还尝试使用end 的键触发keypress 事件,但为此我什至无法为按键设置处理程序。再次陷入困境。
我在窗口上使用jsdom.jqueryify() 将jquery 代码嵌入其中。我想
有了它,我可以使用 .scroll() 之类的 jquery 函数来设置测试处理程序,但它再次卡住了,没有给出任何错误消息。
代码如下:
var document = jsdom.jsdom(str, null, {});
var window = document.parentWindow;
jsdom.jQueryify(window, "jquery.js", function () {
$(window).scroll(function(){
console.log("Scroll Happened.");
});
console.log("Triggering Scroll event..."); // 1
$(window).trigger('scroll');
console.log("Scroll event triggered."); // 2
}
此代码甚至没有达到第 1 位,但是如果我将 $(window) 更改为 window 它超过第 1 位但仍然没有达到第 2 位。
我也试过了:
window.dispatchEvent('scroll');
window.scrollByLines(1);
代替:
window.trigger('scroll');
但没有变化。任何帮助将不胜感激。谢谢
【问题讨论】:
标签: javascript jquery events dom jsdom