Advertisement
Alc77

Untitled

Feb 4th, 2019
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. class GSpy {
  2. constructor() {
  3. this.handleDOMNodeInserted = this.handleDOMNodeInserted.bind(this);
  4. this.deleteNavs = this.deleteNavs.bind(this);
  5. this.deleteLinks = this.deleteLinks.bind(this);
  6. this.start = this.start.bind(this);
  7. }
  8.  
  9. start() {
  10. this.deleteNavs();
  11. var images = document.getElementsByTagName("img");
  12. for(let img of images) {
  13. img.addEventListener("click", this.handleClick);
  14. }
  15. document.body.addEventListener('DOMNodeInserted', this.handleDOMNodeInserted);
  16. }
  17.  
  18. deleteNavs() {
  19. document.querySelector('header').remove();
  20. document.body.querySelector('[role = "navigation"]').remove();
  21. document.querySelector('footer').remove();
  22. this.deleteLinks();
  23. }
  24.  
  25. deleteLinks() {
  26. let links = document.body.querySelectorAll('[role = "link"]');
  27. for (var i = 0; i < links.length; ++i) {
  28. if (links[i].childElementCount > 1) {
  29. links[i].lastElementChild.remove();
  30. }
  31. }
  32. }
  33.  
  34. handleClick() {
  35. var imgId = this.offsetParent.offsetParent.offsetParent.getAttribute("data-tbnid");
  36. console.log('imageId: ', imgId);
  37. let src = document.querySelector(`[data-tbnid='` + imgId + `']`).getElementsByTagName("img")[0].src;
  38. const saveManager = new SaveManager();
  39. saveManager.saveSource(src);
  40. }
  41.  
  42. handleDOMNodeInserted(e) {
  43. this.deleteLinks();
  44. var imgs = document.getElementsByTagName("img");
  45. // refresh all listeners
  46. for(var i = 0; i < imgs.length; ++i) {
  47. imgs[i].removeEventListener("click", this.handleClick);
  48. imgs[i].addEventListener("click", this.handleClick);
  49. }
  50. }
  51. }
  52.  
  53. const SPY = new GSpy();
  54. SPY.start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement