我如何创建一个 Tampermonkey 脚本来阻止页面的某些部分成为链接?
How can I create a Tampermonkey script that will prevent certain parts of a page from being links?
我需要快速 select,从这样的页面复制并粘贴文本(特别是内容描述符):https://www.esrb.org/search/?searchKeyword=&searchType=LatestRatings&timeFrame=PastWeek&pg=1&platform[]=All%20Platforms&rating[]=E&rating[]=E10%2B&rating[]=T&rating[]=M&rating[]=AO&descriptor[]=All%20Content
我不能轻易 select 我想要的文字,因为整个游戏框是一个 link 我想点击和拖动会让它认为你正在尝试放下一个 [=20= 】 某处。我需要做很多这样的事情,所以去每个单独的游戏页面并抓取那里的文字会非常麻烦。
我尝试将 links 阻止到 "https:www.esrb.org/ratings/",如本页所述:https://scottlilly.com/greasemonkey-block-links-to-annoying-websites/ 但没有任何变化。
Array.prototype.forEach.call (linkList, function (link) {
if (link.hostname.includes("https://www.esrb.org/ratings/")
) {
//-- Block the link
link.href = "javascript:void(0)";
}
} );
更改 URL 不会使其 不是 link。但是,在您的情况下,link 没有文本,并且通过 CSS 覆盖在框上,因此您只需隐藏它即可。我会使用这个功能:
function setLinks(state) {
const links = document.querySelectorAll("#results .game>a");
for(const link of links) {
// false means hide, true means show
link.style.display = !!state ? "" : "none";
}
}
调用 setLinks(false)
禁用它们并调用 setLinks(true)` 再次激活它们。您甚至可以使其可控,例如仅在您按住键时禁用 links。这将在您按住 S 时禁用 links,如 select:
window.addEventListener("keydown", (e)=>{if(e.which==83)setLinks(false);});
window.addEventListener("keyup", (e)=>{if(e.which==83)setLinks(true);});
我需要快速 select,从这样的页面复制并粘贴文本(特别是内容描述符):https://www.esrb.org/search/?searchKeyword=&searchType=LatestRatings&timeFrame=PastWeek&pg=1&platform[]=All%20Platforms&rating[]=E&rating[]=E10%2B&rating[]=T&rating[]=M&rating[]=AO&descriptor[]=All%20Content
我不能轻易 select 我想要的文字,因为整个游戏框是一个 link 我想点击和拖动会让它认为你正在尝试放下一个 [=20= 】 某处。我需要做很多这样的事情,所以去每个单独的游戏页面并抓取那里的文字会非常麻烦。
我尝试将 links 阻止到 "https:www.esrb.org/ratings/",如本页所述:https://scottlilly.com/greasemonkey-block-links-to-annoying-websites/ 但没有任何变化。
Array.prototype.forEach.call (linkList, function (link) {
if (link.hostname.includes("https://www.esrb.org/ratings/")
) {
//-- Block the link
link.href = "javascript:void(0)";
}
} );
更改 URL 不会使其 不是 link。但是,在您的情况下,link 没有文本,并且通过 CSS 覆盖在框上,因此您只需隐藏它即可。我会使用这个功能:
function setLinks(state) {
const links = document.querySelectorAll("#results .game>a");
for(const link of links) {
// false means hide, true means show
link.style.display = !!state ? "" : "none";
}
}
调用 setLinks(false)
禁用它们并调用 setLinks(true)` 再次激活它们。您甚至可以使其可控,例如仅在您按住键时禁用 links。这将在您按住 S 时禁用 links,如 select:
window.addEventListener("keydown", (e)=>{if(e.which==83)setLinks(false);});
window.addEventListener("keyup", (e)=>{if(e.which==83)setLinks(true);});