Как я могу навсегда удалить элемент с каждой веб-страницы?

2059
Whitecat

Я использую Safari на Mac с OSX El Capitan, и мне нужен способ навсегда удалить элемент с каждой веб-страницы в домене.

Я не хочу временно вносить изменения. Мне бы хотелось, чтобы мой ответ работал в Safari, я должен сказать это дважды, потому что глупые редакторы и другие пользователи продолжают указывать мне на неприменимые решения для Firefox здесь .

т.е. https://www.google.com/search?num=100&client=safari&rls=en&q=test&oq=testвсе еще имеет тот же элемент заблокирован какhttps://www.google.com/

Я знаю о расширениях, которые делают это для Firefox - « Удалить это навсегда » и « Еще одно удаление - навсегда » - но есть ли способ сделать это в Safari, или нужно ли сделать расширение для выполнения этой задачи?

-1
Вы используете Mac или Windows? Bcoz Safari на ПК отличается от сафари на Mac OS. Прочитайте [создание расширения для сафари] (https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/Introduction/Introduction.html). Вы можете добавить javascript / css для удаления элементов. Кстати: Downvote: не я. ;) Lucky 8 лет назад 2
Дайте мне знать, насколько этот вопрос плох или должен быть улучшен. Whitecat 8 лет назад 0
Возможный дубликат [Понимание CSS для пользовательского стиля в браузере] (http://superuser.com/questions/234952/understanding-css-for-user-styling-in-a-browser) user193661 8 лет назад 0
Не возможно дублировать, поскольку он обращается к другому браузеру. Это на самом деле в первой строке вопроса, если вы хотите прочитать его. Whitecat 8 лет назад 0

1 ответ на вопрос

1
Whitecat

One way to do it is use an extension that allows scripts to be added to a webpage.

I used the extension Quickscript for Safari. I created the following script to run and delete by classname every time I open the webpage:

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

Another way is to delete by item id.

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

This can also be accomplished by creating a function using jquery.

removeElementsById('#<id to delete>'); removeElementsByClass('.<className to delete>'); function removeElementsByClass(className){ $(className).remove(); } function removeElementsById(id){ $(id).remove(); } 

Note: This solution is browser and OS independent. It only requires you find an extension that allows you to run scripts on websites.

Custom JavaScript for websites will work with chrome.

Похожие вопросы