我如何才能永久删除每个网页上的元素?

我如何才能永久删除每个网页上的元素?

我在装有 OSX El Capitan 的 Mac 上运行 Safari,我想要一种方法来永久删除域中每个网页中的元素。

我不想暂时做出改变。我希望我的答案能在 Safari 中工作,我不得不说两次,因为愚蠢的编辑和其他用户继续向我指出不适用于 Firefox 的解决方案这里

https://www.google.com/search?num=100&client=safari&rls=en&q=test&oq=test仍然有相同的元素被阻止https://www.google.com/

我知道 Firefox 的扩展程序可以做到这一点 - “永久删除“ 和 ”永久删除“——但是有没有办法在 Safari 中做到这一点,或者是否必须制作扩展才能完成这项任务?

答案1

一种方法是使用允许将脚本添加到网页的扩展。

我使用了扩展快捷脚本适用于 Safari。我创建了以下脚本,每次打开网页时都会运行并按类名删除:

removeElementsByClass('<className to delete>');

function removeElementsByClass(className){
    var elements = document.getElementsByClassName(className);
    while(elements.length > 0){
        elements[0].parentNode.removeChild(elements[0]);
    }
}

另一种方法是通过项目 ID 删除。

removeElementsById('<id to delete>');

function removeElementsById(id){
    var elements = document.getElementById(id);
    while(elements.length > 0){
        elements[0].parentNode.removeChild(elements[0]);
    }
}

这也可以通过使用 jquery 创建函数来实现。

removeElementsById('#<id to delete>');
removeElementsByClass('.<className to delete>');

function removeElementsByClass(className){
    $(className).remove();
}
function removeElementsById(id){
    $(id).remove();
}

注意:此解决方案独立于浏览器和操作系统。它只需要您找到一个允许您在网站上运行脚本的扩展程序。

为网站定制 JavaScript 将与 Chrome 兼容。

相关内容