我在装有 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 兼容。