gavin19

RES - Auto-hide image expando upon closing

Sep 24th, 2011
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name          Reddit - Auto-hide image expando upon closing [RES]
  3. // @namespace     http://userscripts.org/scripts/show/108827
  4. // @author        gavin19
  5. // @description   [RES] only. Collapsing an image expando hides the entire post.
  6. // @match         http://reddit.com/*
  7. // @match         https://reddit.com/*
  8. // @match         http://*.reddit.com/*
  9. // @match         https://*.reddit.com/*
  10. // @include        http://reddit.com/*
  11. // @include         https://reddit.com/*
  12. // @include        http://*.reddit.com/*
  13. // @include         https://*.reddit.com/*
  14. // @version       1.03
  15. // ==/UserScript==
  16. var hideCollapsed = {
  17.     init: function() {
  18.         var expando = document.querySelectorAll('a.expando-button');
  19.         document.body.addEventListener('DOMNodeInserted', function(event) {
  20.             if ((event.target.tagName == 'DIV') && (event.target.getAttribute('id') && event.target.getAttribute('id').indexOf('siteTable') != -1)) {
  21.                 expando = event.target.querySelectorAll('a.expando-button');
  22.                 hideCollapsed.addListeners(expando);
  23.             }
  24.         });
  25.         hideCollapsed.addListeners(expando);
  26.     },
  27.     addListeners: function(expando) {
  28.         var ele, clickEvent = document.createEvent("MouseEvents");
  29.  
  30.         function addListener() {
  31.             ele = this;
  32.             ele.removeEventListener('click', addListener, false);
  33.             if (ele.parentNode.parentNode.querySelector('.expanded')) {
  34.                 ele.parentNode.parentNode.querySelector('.expanded').addEventListener('click', function() {
  35.                     clickEvent.initEvent("click", false, true);
  36.                     ele.parentNode.parentNode.querySelector('.hide-button a').dispatchEvent(clickEvent);
  37.                 });
  38.             }
  39.         }
  40.         for (var i = 0, len = expando.length; i < len; i += 1) {
  41.             expando[i].addEventListener('click', addListener, false);
  42.         }
  43.     }
  44. }
  45. if (document.body) {
  46.     setTimeout(function() {
  47.         hideCollapsed.init();
  48.     }, 3000);
  49. }
  50. else {
  51.     window.addEventListener("load", function() {
  52.         hideCollapsed.init();
  53.     }, false);
  54. }
Add Comment
Please, Sign In to add comment