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

标签 javascript tampermonkey

我需要从如下页面快速选择、复制和粘贴文本(特别是内容描述符):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/

相关文章:

javascript - JavaScript 中的 DOMContentLoaded 事件未触发

javascript - 当 ".value = ***"似乎无法识别时,如何使用 JS 填写简单的输入字段?

javascript - 使用 Javascript/语音识别/tampermonkey 单击按钮

javascript - 嵌入 iFrame 的 mCustomScrollbar jQuery 插件

java和javascript回调比较

javascript - getElementsByClassName 不返回固定答案

javascript - Reactjs在功能组件中调用组件后更新状态

javascript - 如何编写重复原始链接的脚本?

jquery - 使用greasemonkey/tampermonkey(例如SO)使 Bootstrap 模式与另一个网站一起工作

javascript - 从tensorflow js模型获取原始输出