remove ads from smbc & clear view

It might not work correctly for your device, adjust value in unzoomPage function.

目前为 2025-02-24 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name remove ads from smbc & clear view
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1
  5. // @description It might not work correctly for your device, adjust value in unzoomPage function.
  6. // @author resursator
  7. // @license MIT
  8. // @match https://www.smbc-comics.com/comic/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=smbc-comics.com
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. function cleanElements() {
  14. 'use strict';
  15. const target = document.getElementById('cc-comicbody');
  16. let prevElement = target.previousElementSibling;
  17.  
  18. // Check if previous element is an anchor tag containing an image
  19. if (prevElement && prevElement.tagName === 'A' &&
  20. prevElement.querySelector('img')) {
  21. prevElement.remove();
  22. }
  23.  
  24. const comicright = document.getElementById('comicright');
  25. if (comicright) {
  26. comicright.remove();
  27. }
  28.  
  29. const comicleft = document.getElementById('comicleft');
  30. if (comicleft) {
  31. comicleft.style.width = '100%';
  32. }
  33.  
  34. if (target) {
  35. target.style.marginLeft = 'auto';
  36. target.style.marginRight = 'auto';
  37. }
  38.  
  39. const buythis = document.getElementById('buythis');
  40. if (buythis) {
  41. buythis.remove();
  42. }
  43.  
  44. const jumpbar = document.getElementById('hw-jumpbar');
  45. if (jumpbar) {
  46. jumpbar.remove();
  47. }
  48.  
  49. const commentspace = document.getElementById('comment-space');
  50. if (commentspace) {
  51. commentspace.remove();
  52. }
  53.  
  54. const blogHeader = document.getElementById('blogheader');
  55. if (blogHeader) {
  56. blogHeader.style.marginLeft = '18%';
  57. }
  58. }
  59.  
  60. function fixViewport() {
  61. let meta = document.querySelector("meta[name='viewport']");
  62. if (!meta) {
  63. meta = document.createElement("meta");
  64. meta.name = "viewport";
  65. document.head.appendChild(meta);
  66. }
  67. meta.content = "width=device-width, initial-scale=1.0";
  68. }
  69.  
  70. function unzoomPage() {
  71. // change 1.3 to whatever you need, I'm not sure if it works the same on other devices
  72. let scale = 1.3 / window.devicePixelRatio;
  73. document.body.style.transform = `scale(${scale})`;
  74. document.body.style.transformOrigin = "0 0";
  75. document.body.style.width = `${100 / scale}%`;
  76. document.documentElement.style.width = "100vw";
  77. }
  78.  
  79. fixViewport();
  80. cleanElements();
  81. unzoomPage();