Reddit - Auto Load More Comments

Automatically load more comments at the bottom of a Reddit comment page

当前为 2015-06-12 提交的版本,查看 最新版本

// ==UserScript==
// @name        Reddit - Auto Load More Comments
// @description Automatically load more comments at the bottom of a Reddit comment page
// @namespace   valacar.reddit.auto-load-more-comments
// @include     /^https?://www\.reddit\.com/r/[^/]+/comments//
// @version     0.1.0
// @grant       none
// @compatible  firefox Firefox with GreaseMonkey
// @author      valacar
// ==/UserScript==

// Note: most of this code is adapted from StackOverflow...
// http://stackoverflow.com/a/7557433
// http://stackoverflow.com/a/19343058

function TriggerMouseEvent(node, eventType) {
	var clickEvent = document.createEvent('MouseEvents');
	clickEvent.initEvent (eventType, true, true);
	//console.log('clicking');
	node.dispatchEvent (clickEvent);
}

function MoreCommentsLinkHandler() {
	var el = document.querySelector('.nestedlisting > div:nth-last-of-type(2) .morecomments a');
	var rect = el.getBoundingClientRect();

	if (rect.top >= 0 && rect.left >= 0 &&
		rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
		rect.right <= (window.innerWidth || document.documentElement.clientWidth)
	   )
	{
		//console.log('visible');

		if (MoreCommentsLinkHandler.lastTime == undefined)
		{
			MoreCommentsLinkHandler.lastTime = new Date();
			MoreCommentsLinkHandler.firstTime = true;
		}
		else
		{
			var now = new Date();
			MoreCommentsLinkHandler.firstTime = false;
			var elapsedTime = now - MoreCommentsLinkHandler.lastTime;
			//console.log('elapsed: ' + elapsedTime);
			MoreCommentsLinkHandler.lastTime = now;
		}

		/* only click if one second has passed since the last time the link was visible */
		if (MoreCommentsLinkHandler.firstTime || elapsedTime > 1000) {
			TriggerMouseEvent(el, "click");
		}
	}
}

document.addEventListener('DOMContentLoaded', MoreCommentsLinkHandler, false);
document.addEventListener('load', MoreCommentsLinkHandler, false);
document.addEventListener('scroll', MoreCommentsLinkHandler, false);
document.addEventListener('resize', MoreCommentsLinkHandler, false);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址