[Chrome] 使用 Tampermonkey 過濾掉 Google 新聞中,不想看到的文章(2025新版)
之前寫過一篇 [Chrome] 使用 Tampermonkey 過濾掉 Google 新聞中,不想看到的文章,
不過後來 Google 新聞改版了,原本的 Tampermonkey script 也失效。
新版的 Google 新聞裡可以設定不要看哪些媒體,但不能設關鍵字過濾。
有時看到某些人的新聞,還是覺得很浪費時間。
上次的 script 是自己寫的,
這次就改用 ChatGPT 來產出 Tampermonkey script 囉~
其實效果還不錯,先開出需求後,再請它修正一下,
執行時發現了錯誤訊息也丟給它,它就再改了一版,
我也再手動改了一些,就完成囉~
// ==UserScript==
// @name Google News Filter by Any Text
// @namespace http://tampermonkey.net/
// @version 1.2
// @author ephrain
// @match https://news.google.com/home*
// @icon https://news.google.com/favicon.ico
// @grant none
// ==/UserScript==
(function() {
'use strict';
const keywords = [
"館長",
"馬英九"
];
let observer = null;
function articleContainsKeyword(article) {
const text = article.innerText;
return keywords.find(keyword => text.includes(keyword));
}
function replaceWithNotice(article, keyword) {
if (observer) {
observer.disconnect();
}
// Remove all children safely
while (article.firstChild) {
article.removeChild(article.firstChild);
}
// Create a safe replacement block
const notice = document.createElement('div');
notice.textContent = `關於[${keyword}]的新聞已被隱藏`;
Object.assign(notice.style, {
fontSize: '16px',
color: '#888',
padding: '1em',
border: '1px dashed #ccc',
backgroundColor: '#f9f9f9',
textAlign: 'center',
fontStyle: 'italic'
});
article.appendChild(notice);
if (observer) {
observer.observe(document.body, {
childList: true,
subtree: true
});
}
}
function filterArticles() {
const articles = document.querySelectorAll('article');
articles.forEach(article => {
let keyword = articleContainsKeyword(article);
if (keyword) {
replaceWithNotice(article, keyword);
}
});
}
// Watch for dynamically added articles
observer = new MutationObserver(() => {
filterArticles();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
})();
來看看這個的效果吧~
把不想要看到的新聞關鍵字,放進 keywords 變數裡,
那麼不想要看到的新聞就會被隱藏起來。
如果連那些字都不想看到的話,
修改一下程式裡的 關於[${keyword}]的新聞已被隱藏 的字句就可以了:

(本頁面已被瀏覽過 113 次)