Google Ad Skipper

A simple script to skip Google ads

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        Google Ad Skipper
// @namespace   bing
// @version     0.1
// @description A simple script to skip Google ads
// @author      Bing
// @match       https://www.google.com/*
// @grant       none
// ==/UserScript==

(function() {
  'use strict';
  // 定义一个函数,用来隐藏一个元素
  function hideElement(element) {
    if (element) {
      element.style.display = 'none';
    }
  }
  // 定义一个函数,用来隐藏一个元素的所有子元素
  function hideChildren(element) {
    if (element) {
      var children = element.children;
      for (var i = 0; i < children.length; i++) {
        hideElement(children[i]);
      }
    }
  }
  // 定义一个函数,用来隐藏Google搜索结果页面上的所有广告元素
  function hideSearchAds() {
    // 获取搜索结果的容器元素
    var container = document.getElementById('main');
    if (container) {
      // 获取搜索结果的所有子元素
      var results = container.children;
      for (var i = 0; i < results.length; i++) {
        // 获取每个搜索结果的类名
        var className = results[i].className;
        // 如果类名包含"ads"或"pla",则表示是广告元素,隐藏之
        if (className.includes('ads') || className.includes('pla')) {
          hideElement(results[i]);
        }
      }
    }
  }
  // 定义一个函数,用来隐藏Google视频页面上的所有广告视频
  function hideVideoAds() {
    // 获取视频播放器的元素
    var player = document.getElementById('movie_player');
    if (player) {
      // 获取视频播放器的所有子元素
      var children = player.children;
      for (var i = 0; i < children.length; i++) {
        // 获取每个子元素的类名
        var className = children[i].className;
        // 如果类名包含"ad"或"ytp",则表示是广告视频,隐藏之
        if (className.includes('ad') || className.includes('ytp')) {
          hideElement(children[i]);
        }
      }
    }
  }
  // 定义一个函数,用来判断当前页面是搜索结果页面还是视频页面
  function isSearchPage() {
    // 获取当前页面的URL
    var url = window.location.href;
    // 如果URL包含"search"或"q=",则表示是搜索结果页面,返回true
    if (url.includes('search') || url.includes('q=')) {
      return true;
    }
    // 否则,返回false
    return false;
  }
  // 定义一个函数,用来执行脚本的主要逻辑
  function main() {
    // 判断当前页面是搜索结果页面还是视频页面
    if (isSearchPage()) {
      // 如果是搜索结果页面,隐藏搜索结果页面上的所有广告元素
      hideSearchAds();
    } else {
      // 如果是视频页面,隐藏视频页面上的所有广告视频
      hideVideoAds();
    }
  }
  // 在页面加载完成后,执行脚本的主要逻辑
  window.addEventListener('load', main);
})();