PDA

Показать полную графическую версию : Скрытие ненужных элементов на странице


Spuner
24-04-2019, 18:11
Если не трудно, можете написать UserScript (если правильно понимаю), который скрывал бы элементы (указанные на скриншотах) на странице? Скрипт будет работать в "Violentmonkey".

yurfed
24-04-2019, 19:35
Spuner, может, как вариант, дабы избежать писанины, использовать uBlock Orign (https://www.yandex.ru/search/?lr=10738&offline_search=1&text=ublock%20origin)?
ПКМ на значке расширения и выбрать "Блокировать элемент", после чего выбираем то, что хотим скрыть. Всего два клика. Блокированный элемент заносится в список.
Так выглядит выбор элемента
https://i110.fastpic.ru/big/2019/0424/50/0ad5c6d138ab5c27083c0169d8978750.png (https://fastpic.ru/)

Spuner
24-04-2019, 19:47
yurfed, сейчас использую AdGuard (как блокировщик рекламы и элементов), но бывает случае, когда блокировка элемента на ВК - не всегда работает нормально. По этому возник вопрос о скрипте... По моему, хорошо написаны скрипт получше будет работать чем расширение, черт знает как написанное.

yurfed
24-04-2019, 19:54
Spuner, я вам предложил быстрый вариант, а там как хотите.
Ждите, может кто и напишет.

Spuner
24-04-2019, 19:55
yurfed, я этим быстрым вариантом и сейчас пользуюсь, только он не очень...

А вы помочь не можете?

yurfed
24-04-2019, 20:56
А вы помочь не можете? »нет, к сожалению нет. Тут я не силён.
Но стало интересно - чем вам помешали эти кнопки :)

Sham
24-04-2019, 21:29
вроде бы document.querySelector("selector").remove(); или document.querySelector("селектор").style.display = "none"; https://developer.mozilla.org/ru/docs/Web/API/Document/querySelector
селектор элемента можно скопировать (в Хроме) из devtools f12 (стрелка в левом верхнем углу - кликом выбираем элемент - ПКМ по выделенному тегу в окне devtools - в меню: copy->copy selector)

Spuner
24-04-2019, 23:45
Но стало интересно - чем вам помешали эти кнопки »
Честно говоря - долгая история. Но от них надо избавляться... :-/

селектор элемента можно скопировать (в Хроме) из devtools f12 (стрелка в левом верхнем углу - кликом выбираем элемент - ПКМ по выделенному тегу в окне devtools - в меню: copy->copy selector) »
Если правильно сделал, то вот, что скопировалось...

#content > div > div._audio_page_content_block_wrap.audio_page_content_block_wrap > div.page_block._audio_page_content_block > div.audio_page_sections._audio_page_sections.clear_fix > div.audio_section.audio_w_covers._audio_section._audio_section__all.audio_section__all > div > div.audio_page_all_layout_columns.clear_fix > div.audio_page__rows_wrap > div.audio_page__audio_rows._audio_page__audio_rows > div.audio_page__sort_controls > div.audio_page__shuffle_all > button
Я в этом совсем ничего не понимаю.

Sham
25-04-2019, 03:02
Лучше последние 2-3 элемента взять (> это вложенность), потому что уникальный селектор может не совпасть на другой странице с этой кнопкой.

Spuner
25-04-2019, 03:30
Sham, если я выложу селекторы всех элементов, можете написать скрипт?

Sham
27-04-2019, 17:02
Spuner, у меня нет Violentmonkey.
примерно: // ==UserScript==
// @name deleteButton
// @description удаление кнопок
// @include https://*.vk.com/*
// ==/UserScript==
window.addEventListener("DOMContentLoaded", function() {
document.querySelector("div.audio_page__sort_controls > div.audio_page__shuffle_all > button").remove();
// повторить для каждого селектора
});

Spuner
28-04-2019, 00:24
Sham, может, я что-то не так делаю, но удалось скрыть только один элемент, что вы дали... На других элементов испробовал все селекторы, что копирует браузер... Ни в какую :-/

Кстати, блокировщик рекламы блокирует таким образом все нужные элементы...

vk.com###content > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_content_block_wrap.audio_page_content_block_wrap:nth-child(2) > div.page_block._audio_page_content_block:first-child > div.audio_page_sections._audio_page_sections.clear_fix:last-child > div.audio_section.audio_w_covers._audio_section._audio_section__all.audio_section__all:last-child > div.audio_page_section_layout._audio_page_section_layout.no_playlists.has_friends_block > div.audio_page_all_layout_columns.clear_fix:last-child > div.audio_page__rows_wrap:first-child > div.audio_page__audio_rows._audio_page__audio_rows:first-child > div.audio_page__sort_controls:nth-child(2) > div.audio_page__shuffle_all:last-child > button.audio_page__shuffle_all_button

vk.com###content > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_content_block_wrap.audio_page_content_block_wrap:nth-child(2) > div.page_block._audio_page_content_block:first-child > div.audio_page_sections._audio_page_sections.clear_fix:last-child > div.audio_section.audio_w_covers._audio_section._audio_section__all.audio_section__all:last-child > div.audio_page_section_layout._audio_page_section_layout.no_playlists.has_friends_block > div.audio_page_all_layout_columns.clear_fix:last-child > div.audio_page__rows_wrap:first-child > div.audio_page__audio_rows._audio_page__audio_rows:first-child > div.audio_page__sort_controls:nth-child(2) > div.idd_wrap.audio_page__sort_dd._audio_page__sort_dd:first-child

vk.com###content > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_player_wrap.audio_page_player_wrap.page_block:first-child > div.audio_page_player2._audio_page_player._audio_row.clear_fix.audio_title_long_performer > div.audio_page_player_ctrl.audio_page_player_btns._audio_page_player_btns.clear_fix:nth-child(5) > button.audio_page_player_btn.audio_page_player_shuffle._audio_page_player_shuffle:nth-child(3)

vk.com###audio_layer_tt > div.eltt_content._eltt_content:last-child > div.audio_layer_container > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_player_wrap.audio_page_player_wrap.page_block:first-child > div.audio_page_player2._audio_page_player._audio_row.clear_fix.audio_title_long_performer > div.audio_page_player_ctrl.audio_page_player_btns._audio_page_player_btns.clear_fix:nth-child(5) > button.audio_page_player_btn.audio_page_player_shuffle._audio_page_player_shuffle:nth-child(3)

vk.com###audio_layer_tt > div.eltt_content._eltt_content:last-child > div.audio_layer_container > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_content_block_wrap.audio_page_content_block_wrap.ui_scroll_container.ui_scroll_defau lt_theme:nth-child(2) > div.ui_scroll_overflow:first-child > div.ui_scroll_blocker:first-child > div.ui_scroll_outer > div.ui_scroll_inner.tt_noappend > div.ui_scroll_content.clear_fix:first-child > div.page_block._audio_page_content_block:first-child > h2.page_block_h2:nth-child(2) > ul.ui_tabs.clear_fix > li._audio_section_tab__updates:nth-child(6) > a.ui_tab

vk.com###content > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_content_block_wrap.audio_page_content_block_wrap:nth-child(2) > div.page_block._audio_page_content_block:first-child > div.audio_page_sections._audio_page_sections.clear_fix:last-child > div.audio_section.audio_w_covers._audio_section._audio_section__all.audio_section__all:nth-child(2) > div.audio_page_section_layout._audio_page_section_layout.no_playlists.has_friends_block > div.audio_page_all_layout_columns.clear_fix:last-child > div.audio_page__rows_wrap:first-child > div.audio_page__audio_rows._audio_page__audio_rows:first-child > div.audio_page__sort_controls:nth-child(2) > div.audio_page__shuffle_all:last-child > button.audio_page__shuffle_all_button

vk.com###content > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_content_block_wrap.audio_page_content_block_wrap:nth-child(2) > div.page_block._audio_page_content_block:first-child > div.audio_page_sections._audio_page_sections.clear_fix:last-child > div.audio_section.audio_w_covers._audio_section._audio_section__all.audio_section__all:nth-child(2) > div.audio_page_section_layout._audio_page_section_layout.no_playlists.has_friends_block > div.audio_page_all_layout_columns.clear_fix:last-child > div.audio_page__rows_wrap:first-child > div.audio_page__audio_rows._audio_page__audio_rows:first-child > div.audio_page__sort_controls:nth-child(2) > div.idd_wrap.audio_page__sort_dd._audio_page__sort_dd:first-child > div.idd_selected_value.idd_arrow:first-child

vk.com###content > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_content_block_wrap.audio_page_content_block_wrap:nth-child(2) > div.page_block._audio_page_content_block:first-child > h2.page_block_h2:first-child > ul.ui_tabs.clear_fix.ui_tabs_header.ui_tabs_loading > li._audio_section_tab__updates:nth-child(4) > a.ui_tab

vk.com##div.ap_layer_wrap:last-child > div.ap_layer > div.ap_layer__content:first-child > div.audio_pl_snippet2._audio_pl._audio_pl_210747473_43219495.audio_pl__canedit.audio_pl__owned.audio _pl__has_thumb.audio_pl__has_shuffle > div.audio_pl_snippet__body:last-child > button.audio_pl_snippet__shuffle_all.audio_shuffle_all_button:nth-child(2)

vk.com###content > div._audio_page_layout.audio_page_layout.audio_page_layout2 > div._audio_page_content_block_wrap.audio_page_content_block_wrap:nth-child(2) > div.page_block._audio_page_content_block:first-child > h2.page_block_h2:first-child > ul.ui_tabs.clear_fix.ui_tabs_header > li._audio_section_tab__updates:nth-child(4) > a.ui_tab

Sham
30-04-2019, 00:04
Spuner, 1. @include указывает url на которых запускается скрипт. Если с точкой не работает, то может нужно добавить @include https://vk.com/*
2. браузер копирует уникальный селектор со всеми классами от корневого элемента. Чтобы элемент нашёлся на всех страницах, нужно максимально упростить селектор: оставить последние 2-3 элемента (разделены >), удалить все ":...-child.." и тд.
например (первых два из списка)
div.audio_page__sort_controls > div.audio_page__shuffle_all > button.audio_page__shuffle_all_button
div.audio_page__sort_controls > div.idd_wrap.audio_page__sort_dd._audio_page__sort_dd

Spuner
30-04-2019, 01:54
1. @include указывает url на которых запускается скрипт. Если с точкой не работает, то может нужно добавить
Код: »
С этим я быстро разобрался... (с "." не работал)

Я одного не пойму - как правильно построить структуру?

Какой из них правильный?

// ==UserScript==
// @name Removing Buttons on VK
// @description Удаление кнопок
// @include https://vk.com/*
// ==/UserScript==

window.addEventListener("DOMContentLoaded", function() {
document.querySelector("div.audio_page__sort_controls > div.audio_page__shuffle_all > button").remove();
window.addEventListener("DOMContentLoaded", function() {
document.querySelector("div.audio_page__sort_controls > div.idd_wrap.audio_page__sort_dd._audio_page__sort_dd > button").remove();

});

});

// ==UserScript==
// @name Removing Buttons on VK
// @description Удаление кнопок
// @include https://vk.com/*
// ==/UserScript==

window.addEventListener("DOMContentLoaded", function() {
document.querySelector("div.audio_page__sort_controls > div.audio_page__shuffle_all > button").remove();

});

window.addEventListener("DOMContentLoaded", function() {
document.querySelector("div.audio_page__sort_controls > div.idd_wrap.audio_page__sort_dd._audio_page__sort_dd > button").remove();

});

Хотя, надо отметить, что с первым вариантом что со вторым - второй (и последующие) элемент в обеих случаях не скрывается. Неважно, сколько селекторов был прописан в команде - один, два, три и т.д...

Sham
01-05-2019, 23:31
Spuner, внутри "window.addEventListener("DOMContentLoaded", function() { ..... });" код выполняется строго после загрузки страницы. В гризманки можно настроить начало выполнения скрипта, и тогда этот блок не нужен. Иначе, нужен один этот блок, внутри которого ряд querySelector'ов, либо если совсем правильно - с массивом селекторов и условием наличия элемента.
Если селектор не находит элемент на другой странице, значит надо копировать его на всех страницах и сравнивать между собой, пробуя удалять изменяющиеся части. Тут без экспериментов не обойтись.




© OSzone.net 2001-2012