我需要从如下页面快速选择、复制和粘贴文本(特别是内容描述符):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
我无法轻松选择我想要的文本,因为整个游戏框都是一个链接,我想单击并拖动会使其认为您试图将链接放在某处。我需要做很多这样的事情,所以进入每个单独的游戏页面并抓取那里的文本会非常麻烦。
我尝试阻止指向“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 不会使其不再是链接。但是,在您的情况下,链接没有文本,并通过 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)` 来再次激活它们。您甚至可以使其可控,例如仅在您按住某个键时才禁用链接。当您按住 S 时,这将禁用链接,如 select:
window.addEventListener("keydown", (e)=>{if(e.which==83)setLinks(false);});
window.addEventListener("keyup", (e)=>{if(e.which==83)setLinks(true);});
关于javascript - 如何创建 Tampermonkey 脚本来防止页面的某些部分成为链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59385160/