Google Ad Skipper

A simple script to skip Google ads

  1. // ==UserScript==
  2. // @name Google Ad Skipper
  3. // @namespace bing
  4. // @version 0.1
  5. // @description A simple script to skip Google ads
  6. // @author Bing
  7. // @match https://www.google.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13. // 定义一个函数,用来隐藏一个元素
  14. function hideElement(element) {
  15. if (element) {
  16. element.style.display = 'none';
  17. }
  18. }
  19. // 定义一个函数,用来隐藏一个元素的所有子元素
  20. function hideChildren(element) {
  21. if (element) {
  22. var children = element.children;
  23. for (var i = 0; i < children.length; i++) {
  24. hideElement(children[i]);
  25. }
  26. }
  27. }
  28. // 定义一个函数,用来隐藏Google搜索结果页面上的所有广告元素
  29. function hideSearchAds() {
  30. // 获取搜索结果的容器元素
  31. var container = document.getElementById('main');
  32. if (container) {
  33. // 获取搜索结果的所有子元素
  34. var results = container.children;
  35. for (var i = 0; i < results.length; i++) {
  36. // 获取每个搜索结果的类名
  37. var className = results[i].className;
  38. // 如果类名包含"ads"或"pla",则表示是广告元素,隐藏之
  39. if (className.includes('ads') || className.includes('pla')) {
  40. hideElement(results[i]);
  41. }
  42. }
  43. }
  44. }
  45. // 定义一个函数,用来隐藏Google视频页面上的所有广告视频
  46. function hideVideoAds() {
  47. // 获取视频播放器的元素
  48. var player = document.getElementById('movie_player');
  49. if (player) {
  50. // 获取视频播放器的所有子元素
  51. var children = player.children;
  52. for (var i = 0; i < children.length; i++) {
  53. // 获取每个子元素的类名
  54. var className = children[i].className;
  55. // 如果类名包含"ad"或"ytp",则表示是广告视频,隐藏之
  56. if (className.includes('ad') || className.includes('ytp')) {
  57. hideElement(children[i]);
  58. }
  59. }
  60. }
  61. }
  62. // 定义一个函数,用来判断当前页面是搜索结果页面还是视频页面
  63. function isSearchPage() {
  64. // 获取当前页面的URL
  65. var url = window.location.href;
  66. // 如果URL包含"search"或"q=",则表示是搜索结果页面,返回true
  67. if (url.includes('search') || url.includes('q=')) {
  68. return true;
  69. }
  70. // 否则,返回false
  71. return false;
  72. }
  73. // 定义一个函数,用来执行脚本的主要逻辑
  74. function main() {
  75. // 判断当前页面是搜索结果页面还是视频页面
  76. if (isSearchPage()) {
  77. // 如果是搜索结果页面,隐藏搜索结果页面上的所有广告元素
  78. hideSearchAds();
  79. } else {
  80. // 如果是视频页面,隐藏视频页面上的所有广告视频
  81. hideVideoAds();
  82. }
  83. }
  84. // 在页面加载完成后,执行脚本的主要逻辑
  85. window.addEventListener('load', main);
  86. })();