Load all pages

try to take over the world!

当前为 2018-01-27 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Load all pages
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author You
  7. // @match http://www.dm5.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. function loadAllPages() {
  15. if (typeof $ !== 'undefined' && $('a[href$=p2\\/]').size()) {
  16. var lastPage = 0;
  17. var lastUrl;
  18. for (var i = 2; i < 999; i++) {
  19. var url = $('a[href$=p' + i + '\\/]').attr('href');
  20. if (typeof url !== 'undefined') {
  21. lastPage = i;
  22. lastUrl = url;
  23. }
  24. }
  25. var baseUrl = lastUrl.substr(0, lastUrl.indexOf('-'));
  26. $('<div style="position:fixed;left:20px;bottom:20px;padding:10px;background:white;color:black;box-shadow:2px 2px 10px;opacity:0.8;font-size:12px;" id="_status"></div>')
  27. .appendTo(document.body);
  28. window._total = 0;
  29. for (var i = 2; i <= lastPage; i++) {
  30. var url = baseUrl + '-p' + i + '/';
  31. console.log('create iframe ' + url);
  32. $('<iframe style="position:absolute;left:0;top:0;width:0;height:0;">')
  33. .attr('src', url + '?_pb=1')
  34. .attr('name', '_p' + i)
  35. .appendTo(document.body);
  36. window._total++;
  37. }
  38. $('#_status').text('Loading');
  39. } else {
  40. window.setTimeout(loadAllPages, 100);
  41. }
  42. }
  43.  
  44. function postbackToParent() {
  45. if (typeof $ !== 'undefined') {
  46. var img = $('#showimage > #cp_img > img');
  47. if (img.size() && img.prop('complete')) {
  48. var src = img.prop('src');
  49. var page = /p(\d+)/.exec(location.href)[1];
  50. console.log('get image ' + page + '=' + src);
  51. for (var i = 2; i <= page; i++) {
  52. img = $(window.parent.document).find('#showimage > div[page=' + i + ']');
  53. if (!img.size()) {
  54. console.log('create image ' + i);
  55. img = $('<div style="margin:10px 0;">').attr('page', i).text(i).appendTo($(window.parent.document).find('#showimage'));
  56. }
  57. }
  58. $(window.parent.document).find('#showimage > div[page=' + page + ']')
  59. .empty()
  60. .append($('<img>').attr('src', src));
  61. var total = window.parent._total;
  62. var loading = $(window.parent.document).find('iframe[name^=_p]').size() - 1;
  63. if (loading <= 0) {
  64. $(window.parent.document).find('#_status').hide();
  65. } else {
  66. $(window.parent.document).find('#_status').text((total - loading) + ' / ' + total);
  67. }
  68. $(window.parent.document).find('iframe[name=_p' + page + ']').remove();
  69. return;
  70. }
  71. }
  72. window.setTimeout(postbackToParent, 100);
  73. }
  74.  
  75. if (location.href.indexOf('_pb=1') < 0) {
  76. window.setTimeout(loadAllPages, 100);
  77. } else {
  78. window.setTimeout(postbackToParent, 100);
  79. }
  80. })();