繁体   English   中英

如何创建一个 Tampermonkey 脚本来防止页面的某些部分成为链接?

[英]How can I create a Tampermonkey script that will prevent certain parts of a page from being links?

我需要从这样的页面快速选择、复制和粘贴文本(特别是内容描述符): 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时禁用链接,如在s 中选择:

window.addEventListener("keydown", (e)=>{if(e.which==83)setLinks(false);});
window.addEventListener("keyup", (e)=>{if(e.which==83)setLinks(true);});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM