您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
清理新版巴哈姆特的广告(首页、GNN新闻、哈拉区)、扩宽显示区域(首页、GNN新闻、哈拉区)、移除页脚与无用的浮动区块
当前为
// ==UserScript== // @name New Bahamut Cleaner & Content Widening // @name:zh-TW 新版巴哈姆特乾淨化 & 擴寬顯示區域 // @name:zh-CN 新版巴哈姆特干净化 & 扩宽显示区域 // @namespace https://www.tampermonkey.net/ // @version 2.6 // @description Cleans up ads on the new version of Bahamut (Homepage, GNN News, and Forum), widens the content display area (Homepage, GNN News, and Forum), and removes the footer and unnecessary floating elements. // @description:zh-TW 清理新版巴哈姆特的廣告(首頁、GNN新聞、哈拉區)、擴寬顯示區域(首頁、GNN新聞、哈拉區)、移除頁腳與無用的浮動區塊 // @description:zh-CN 清理新版巴哈姆特的广告(首页、GNN新闻、哈拉区)、扩宽显示区域(首页、GNN新闻、哈拉区)、移除页脚与无用的浮动区块 // @author ChatGPT // @match https://www.gamer.com.tw/* // @match https://gnn.gamer.com.tw/* // @match https://forum.gamer.com.tw/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; // ===== 首頁區模組(穩定,請勿變動)===== const cleanBahaAds = () => { const bannerImg = document.querySelector('#adunit img[alt="超級看板廣告"]'); if (bannerImg) { const adContainer = bannerImg.closest('div.GoogleActiveViewElement'); if (adContainer) adContainer.remove(); } const gapContainer = document.querySelector('#billboardAd.BH-banner--lg'); if (gapContainer) gapContainer.remove(); const rightAdItems = document.querySelectorAll('.main-container__right .BH-banner__item'); rightAdItems.forEach(item => item.remove()); const bannerRow = document.querySelector('.main-container__right .BH-banner__row'); if (bannerRow) { bannerRow.style.minHeight = '0'; bannerRow.style.padding = '0'; bannerRow.style.margin = '0'; } const fuliSection = document.querySelector('div.main-container__right > section.index-fuli'); if (fuliSection) fuliSection.remove(); const fixedRightLinks = document.querySelectorAll('div.fixed-right div.column a.fixed-right__link'); fixedRightLinks.forEach(link => link.remove()); const mainRow = document.querySelector('main.main-container__row'); if (mainRow) { mainRow.style.width = '126%'; mainRow.style.margin = '0 auto'; } const mainContent = document.querySelector('.main-index__content'); if (mainContent) { mainContent.style.width = '100%'; mainContent.style.maxWidth = '1350px'; } const postPanel = document.querySelector('#postPanel.section-index'); if (postPanel) { const adWrappers = postPanel.querySelectorAll('.ad__wrapper'); adWrappers.forEach(ad => { if (ad.parentElement?.children.length > 1) { ad.style.display = 'none'; } }); } if (!document.querySelector('div.pswp')) { const pswp = document.createElement('div'); pswp.className = 'pswp'; document.body.appendChild(pswp); } const footer = document.querySelector('footer.main-container__footer'); if (footer) footer.remove(); }; // ===== 新聞區模組(穩定)===== const cleanGNN = () => { const shop = document.querySelector('div#shop.lazyloaded'); if (shop) shop.remove(); const banner4gamer = document.querySelector('div#banner-4gamer'); if (banner4gamer) banner4gamer.remove(); const gptBanner = document.querySelector('div#div-gpt-ad-banner'); if (gptBanner) gptBanner.remove(); const googleImageDiv = document.querySelector('div#google_image_div.GoogleActiveViewElement'); if (googleImageDiv) googleImageDiv.remove(); // 僅移除內含廣告關鍵字的 GN-lbox2B 區塊 document.querySelectorAll('div.GN-lbox2B').forEach(el => { const id = el.id || ''; const html = el.innerHTML; const isAd = /ad|ads|gpt|google/i.test(id) || /google_ads_iframe|gpt|doubleclick|adservice|googlesyndication/i.test(html); if (isAd) el.remove(); }); const flySalve = document.querySelector('div#flySalve'); if (flySalve) flySalve.remove(); const bhSlave = document.querySelector('div#BH-slave'); if (bhSlave) bhSlave.remove(); const bhWrapper = document.querySelector('div#BH-wrapper'); if (bhWrapper) { bhWrapper.style.maxWidth = '100%'; } const bhMaster = document.querySelector('div#BH-master'); if (bhMaster) { bhMaster.style.width = 'calc(100%)'; } const gnTopimg = document.querySelector('div#BH-master div.GN-topimg'); if (gnTopimg) { gnTopimg.style.width = '100%'; } }; // ===== 哈拉區模組(清除廣告)===== const cleanForumAds = () => { // 清除列表內的廣告列 document.querySelectorAll('form div.b-list-wrap table.b-list tbody tr.b-list__row') .forEach(row => { if (row.querySelector('td.b-list_ad')) row.remove(); }); const topAd = document.querySelector('div#div-gpt-ad-banner'); if (topAd) topAd.remove(); const googleImageAd = document.querySelector('div#google_image_div.GoogleActiveViewElement'); if (googleImageAd) googleImageAd.remove(); const flySalve = document.querySelector('div#flySalve'); if (flySalve) flySalve.remove(); }; // ===== 哈拉區 C.php 模組(單篇貼文頁)===== const enhanceForumPost = () => { const bhWrapper = document.querySelector('#BH-wrapper'); if (bhWrapper) bhWrapper.style.width = '100%'; const bhMaster = document.querySelector('#BH-master'); if (bhMaster) bhMaster.style.width = 'auto'; const style = document.createElement('style'); style.textContent = ` .c-section__main { float: right; width: 1440px; text-align: left; box-sizing: border-box; } `; document.head.appendChild(style); }; // ===== 哈拉區 B.php 模組(討論串列表頁)===== const enhanceForumList = () => { const bhWrapper = document.querySelector('#BH-wrapper'); if (bhWrapper) bhWrapper.style.width = '100%'; const bhMaster = document.querySelector('#BH-master'); if (bhMaster) bhMaster.style.width = '1615px'; const style = document.createElement('style'); style.textContent = ` .b-imglist-wrap03 .b-list__main, .b-imglist-wrap03 .b-list-item .b-list__main { max-width: 100%; } .b-imglist-wrap03 .imglist-text { display: inline-block; width: 1130px; vertical-align: top; } `; document.head.appendChild(style); }; // ===== 執行條件判斷與監聽 ===== if (location.hostname === 'www.gamer.com.tw') { setTimeout(() => cleanBahaAds(), 10); const mainContent = document.querySelector('.main-index__content'); if (mainContent) { let debounceTimer = null; const observer = new MutationObserver(() => { clearTimeout(debounceTimer); debounceTimer = setTimeout(() => cleanBahaAds(), 10); }); observer.observe(mainContent, { childList: true, subtree: true }); } } if (location.hostname === 'gnn.gamer.com.tw') { setTimeout(() => cleanGNN(), 10); const bhWrapper = document.querySelector('div#BH-wrapper'); if (bhWrapper) { let debounceTimer = null; const observer = new MutationObserver(() => { clearTimeout(debounceTimer); debounceTimer = setTimeout(() => cleanGNN(), 10); }); observer.observe(bhWrapper, { childList: true, subtree: true }); } } if (location.hostname === 'forum.gamer.com.tw') { setTimeout(() => { cleanForumAds(); const pathname = location.pathname; const searchParams = new URLSearchParams(location.search); // 執行 /C.php 貼文頁寬度調整 if (pathname === '/C.php' && searchParams.has('bsn') && searchParams.has('snA')) { enhanceForumPost(); } // 執行 /B.php 討論串列表寬度調整(包含清單與縮圖) if (pathname === '/B.php' && searchParams.has('bsn')) { enhanceForumList(); } }, 10); const listWrap = document.querySelector('form div.b-list-wrap'); if (listWrap) { let debounceTimer = null; const observer = new MutationObserver(() => { clearTimeout(debounceTimer); debounceTimer = setTimeout(() => cleanForumAds(), 10); }); observer.observe(listWrap, { childList: true, subtree: true }); } } })();