Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Скрытие ненужных элементов на странице (http://forum.oszone.net/showthread.php?t=340259)

Spuner 24-04-2019 18:11 2869044

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

yurfed 24-04-2019 19:35 2869054

Spuner, может, как вариант, дабы избежать писанины, использовать uBlock Orign?
ПКМ на значке расширения и выбрать "Блокировать элемент", после чего выбираем то, что хотим скрыть. Всего два клика. Блокированный элемент заносится в список.
Так выглядит выбор элемента
Скрытый текст

Spuner 24-04-2019 19:47 2869056

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

yurfed 24-04-2019 19:54 2869059

Spuner, я вам предложил быстрый вариант, а там как хотите.
Ждите, может кто и напишет.

Spuner 24-04-2019 19:55 2869060

yurfed, я этим быстрым вариантом и сейчас пользуюсь, только он не очень...

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

yurfed 24-04-2019 20:56 2869069

Цитата:

Цитата Spuner
А вы помочь не можете? »

нет, к сожалению нет. Тут я не силён.
Но стало интересно - чем вам помешали эти кнопки :)

Sham 24-04-2019 21:29 2869074

вроде бы
Код:

document.querySelector("selector").remove();
или
Код:

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

Spuner 24-04-2019 23:45 2869085

Цитата:

Цитата yurfed
Но стало интересно - чем вам помешали эти кнопки »

Честно говоря - долгая история. Но от них надо избавляться... :-/

Цитата:

Цитата Sham
селектор элемента можно скопировать (в Хроме) из 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 2869090

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

Spuner 25-04-2019 03:30 2869091

Sham, если я выложу селекторы всех элементов, можете написать скрипт?

Sham 27-04-2019 17:02 2869418

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 2869453

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 2869658

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 2869666

Цитата:

Цитата Sham
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 2869965

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


Время: 06:42.

Время: 06:42.
© OSzone.net 2001-