ImageViewer

浏览器图片查看效果增强 for Chrome/Edge/Firefox

目前為 2021-07-13 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name ImageViewer
  3. // @version 1.0.7
  4. // @description 浏览器图片查看效果增强 for Chrome/Edge/Firefox
  5. // @author Jack.Chan (971546@qq.com)
  6. // @namespace http://fulicat.com
  7. // @url https://greasyfork.org/zh-CN/scripts/429054-imageviewer
  8. // @match *://*/*
  9. // @grant none
  10. // @run-at document-start
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. if (document.contentType.startsWith('image/')) {
  16. var doc = document.body || document.documentElement;
  17. var docTagName = (function(tag){
  18. var tagName = tag && tag.tagName.toLowerCase();
  19. if (tagName) {
  20. if (tagName == 'svg') {
  21. return tagName;
  22. }
  23. if (tagName == 'body' && tag.children && tag.children.length) {
  24. tagName = tag.children[0].tagName.toLowerCase();
  25. if (tagName == 'img') {
  26. return tagName;
  27. }
  28. }
  29. }
  30. })(doc);
  31. var isViewerMode = docTagName == 'svg' || docTagName == 'img';
  32. if (isViewerMode) {
  33. if (document.head) {
  34. var style = document.createElement('style');
  35. style.setAttribute('type', 'text/css');
  36. style.innerHTML = `img{position: static !important;background: none !important;background-color: transparent !important;}`;
  37. document.head.appendChild(style);
  38. }
  39. doc.style.backgroundImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUwODBCOTRFREZCNDExRUI5ODVFQkZDMUFFOUU5Q0FBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUwODBCOTRGREZCNDExRUI5ODVFQkZDMUFFOUU5Q0FBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTA4MEI5NENERkI0MTFFQjk4NUVCRkMxQUU5RTlDQUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTA4MEI5NERERkI0MTFFQjk4NUVCRkMxQUU5RTlDQUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4S9mZgAAAAY0lEQVR42uzYUQkAIAxFURUDLMr6p1oEU0wUzg0wOLy/zcwcnVVV6/01Pg8AAAAAAAAAAAAAAAAAAAAAAAAAAADgfrv7fx8RFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4qyPAAIoqBuJ7WIoBAAAAAElFTkSuQmCC)';
  40. doc.style.backgroundAttachment = 'fixed';
  41. doc.style.boxSizing = 'border-box';
  42. doc.style.position = 'absolute';
  43. doc.style.top = '50%';
  44. doc.style.left = '50%';
  45. doc.style.transform = 'translate(-50%, -50%)';
  46. if (docTagName == 'svg') {
  47. doc.style.padding = '10px';
  48. doc.style.width = 'auto';
  49. doc.style.height = 'auto';
  50. doc.style.maxWidth = '100%';
  51. doc.style.maxHeight = '100%';
  52. }
  53. }
  54. }
  55. })();