返回首頁 

Reddit Enhancement Suite Image Auto Expand

Automatically expands images within a thread when used with the Reddit Enhancement Suite script.


Install this script?
// ==UserScript==// @name     Reddit Enhancement Suite Image Auto Expand// @namespace  RESAutoExpand// @description  Automatically expands images within a thread when used with the Reddit Enhancement Suite script.// @include  http://reddit.com/r/*// @include  http://*.reddit.com/r/*// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js// @grant    GM_addStyle// @version        1.0// ==/UserScript==/*- The @grant directive is needed to work around a design changeintroduced in GM 1.0.   It restores the sandbox.*//*--- waitForKeyElements():  A utility function, for Greasemonkey scripts,that detects and handles AJAXed content.Usage example:waitForKeyElements ("div.comments", commentCallbackFunction);//--- Page-specific function to do what we want when the node is found.function commentCallbackFunction (jNode) {jNode.text ("This comment changed by waitForKeyElements().");}IMPORTANT: This function requires your script to have loaded jQuery.*/function waitForKeyElements (selectorTxt,    /* Required: The jQuery selector string thatspecifies the desired element(s).*/actionFunction, /* Required: The code to run when elements arefound. It is passed a jNode to the matchedelement.*/bWaitOnce,      /* Optional: If false, will continue to scan fornew elements even after the first match isfound.*/iframeSelector  /* Optional: If set, identifies the iframe tosearch.*/) {var targetNodes, btargetsFound;if (typeof iframeSelector == "undefined")targetNodes     = $(selectorTxt);elsetargetNodes     = $(iframeSelector).contents ().find (selectorTxt);if (targetNodes  &&  targetNodes.length > 0) {btargetsFound   = true;/*--- Found target node(s).  Go through each and act if theyare new.*/targetNodes.each ( function () {var jThis        = $(this);var alreadyFound = jThis.data ('alreadyFound')  ||  false;if (!alreadyFound) {//--- Call the payload function.var cancelFound     = actionFunction (jThis);if (cancelFound)btargetsFound   = false;elsejThis.data ('alreadyFound', true);}} );}else {btargetsFound   = false;}//--- Get the timer-control variable for this selector.var controlObj      = waitForKeyElements.controlObj  ||  {};var controlKey      = selectorTxt.replace (/[^\w]/g, "_");var timeControl     = controlObj [controlKey];//--- Now set or clear the timer as appropriate.if (btargetsFound  &&  bWaitOnce  &&  timeControl) {//--- The only condition where we need to clear the timer.clearInterval (timeControl);delete controlObj [controlKey]}else {//--- Set a timer, if needed.if ( ! timeControl) {timeControl = setInterval ( function () {waitForKeyElements (    selectorTxt,actionFunction,bWaitOnce,iframeSelector);},300);controlObj [controlKey] = timeControl;}}waitForKeyElements.controlObj   = controlObj;}waitForKeyElements (".toggleImage.expando-button.collapsed.collapsedExpando.image.commentImg", clickSaveButton);function clickSaveButton (jNode) {triggerMouseEvent (jNode[0], "click");}function triggerMouseEvent (node, eventType) {var clickEvent = document.createEvent('MouseEvents');clickEvent.initEvent (eventType, true, true);node.dispatchEvent (clickEvent);}