Greasy Fork 支持简体中文。

Resize Image On "Open image in new tab"

Support: Google(G+ blogspot picasa)\Tumblr\Twitter\weibo.com (And more...

目前為 2015-09-27 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name Resize Image On "Open image in new tab"
  3. // @name:zh-cn 右键在新标签中打开图片时显示最优化图像质量
  4. // @version 0.4.16
  5. // @description Support: Google(G+ blogspot picasa)\Tumblr\Twitter\weibo.com (And more...
  6. // @description:zh-cn 支持:谷歌(G+ blogspot picasa)、Tumblr、推特、新浪微博、腾讯微博、知乎、豆瓣
  7. // @run-at document-start
  8. // @match http://*.googleusercontent.com/*
  9. // @match https://*.googleusercontent.com/*
  10. // @match http://*.media.tumblr.com/*
  11. // @match https://*.media.tumblr.com/*
  12. // @match http://*.bp.blogspot.com/*
  13. // @match https://*.bp.blogspot.com/*
  14. // @match http://*.sinaimg.cn/*
  15. // @match https://*.sinaimg.cn/*
  16. // @match http://*.qpic.cn/*
  17. // @match http://*.twimg.com/*
  18. // @match https://*.twimg.com/*
  19. // @match http://*.zhimg.com/*
  20. // @match https://*.zhimg.com/*
  21. // @match http://*.douban.com/view/photo/*
  22. // @match https://*.douban.com/view/photo/*
  23. // @namespace https://greasyfork.org/users/2646
  24. // @copyright 2015+, CLE
  25. // ==/UserScript==
  26.  
  27. var url = document.location.toString();
  28. var m = null;
  29.  
  30. //google
  31. if( (m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)$/i)) ) {
  32. if(m[2] != "s0") {
  33. document.location = m[1] + "s0" + m[3];
  34. }
  35. }
  36. else if( (m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+=)(.+)$/i)) ) {
  37. if(m[2] != "s0") {
  38. document.location = m[1] + "s0";
  39. }
  40. }
  41.  
  42. //blogspot
  43. else if( (m = url.match(/^(https?:\/\/\w+\.bp\.blogspot\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)$/i)) ) {
  44. if(m[2] != "s0") {
  45. document.location = m[1] + "s0" + m[3];
  46. }
  47. }
  48.  
  49. //tumblr
  50. else if( (m = url.match(/^(https?:\/\/\d+\.media\.tumblr\.com\/.*tumblr_\w+_)(\d+)(\.(jpg|jpeg|gif|png|bmp|webp))$/i)) ) {
  51. if(m[2]<1280) {
  52. var ajax = new XMLHttpRequest();
  53. ajax.onreadystatechange=function() {
  54. if (ajax.readyState==4 && ajax.status==200) {
  55. document.location = m[1] + "1280" + m[3];
  56. }
  57. }
  58. ajax.open("HEAD", m[1]+"1280"+m[3], true);
  59. ajax.send();
  60. }
  61. }
  62.  
  63. //性浪微博
  64. else if( (m = url.match(/^(https?:\/\/ww[\d]+\.sinaimg\.cn\/)([^\/]+)(\/.+)$/i)) ) {
  65. if(m[2] != "large") {
  66. document.location = m[1] + "large" + m[3];
  67. }
  68. }
  69.  
  70. //疼逊微博
  71. else if( (m = url.match(/^(http:\/\/[\w\d]+\.qpic\.cn\/.+\/)(\d+)$/i)) ) {
  72. if(m[2]<2000) {
  73. document.location = m[1] + "2000";
  74. }
  75. /*if(m[2]!=0) {
  76. document.location = m[1] + "0";
  77. }*/
  78. }
  79.  
  80. //twitter
  81. else if( (m = url.match(/^https?:\/\/\w+\.twimg\.com\/media\/([^\/:]+\.(jpg|jpeg|gif|png|bmp|webp))$/i)) ) {
  82. document.location = m[0] + ":large";
  83. }
  84. /*m = url.match(/^https?:\/\/\w+\.twimg\.com\/media\/([^\/:]+\.(jpg|jpeg|gif|png|bmp|webp))$/i);
  85. if(m) {
  86. document.location = m[0] + ":large?" + m[1];
  87. }
  88. m = url.match(/^(https?:\/\/\w+\.twimg\.com\/media\/([^\/]+\.(jpg|jpeg|gif|png|bmp|webp)))\:(\w+)$/i);
  89. if(m) {
  90. if(m[4]!="large") {
  91. document.location = m[1] + ":large?" + m[2];
  92. }
  93. }*/
  94.  
  95. //zhihu
  96. else if( (m = url.match(/^(https?:\/\/.+\.zhimg\.com\/\w+_)(\w+)(\.(jpg|jpeg|gif|png|bmp|webp))$/i)) ){
  97. if(m[2]!="r") {
  98. document.location = m[1] + "r" + m[3];
  99. }
  100. }
  101.  
  102. //douban
  103. else if( (m = url.match(/^(https?:\/\/\w+\.douban\.com\/view\/photo\/)(\w+)(\/public\/.+\.(jpg|jpeg|gif|png|bmp|webp))$/i)) ){
  104. if(m[2] != "large"){
  105. var ajax = new XMLHttpRequest();
  106. ajax.onreadystatechange=function() {
  107. if (ajax.readyState==4 && ajax.status==200) {
  108. document.location = m[1] + "large" + m[3];
  109. }else if(ajax.readyState==4 && ajax.status==404) {
  110. if(m[2] != "photo"){
  111. document.location = m[1] + "photo" + m[3];
  112. }
  113. }
  114. }
  115. ajax.open("GET", m[1]+"large"+m[3], true); //豆瓣不支持HEAD,只能用GET,会影响判断速度
  116. ajax.send();
  117. }
  118. }