-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Скрытие ненужных элементов на странице
Вложений: 3
Если не трудно, можете написать UserScript (если правильно понимаю), который скрывал бы элементы (указанные на скриншотах) на странице? Скрипт будет работать в "Violentmonkey".
|
Spuner, может, как вариант, дабы избежать писанины, использовать uBlock Orign?
ПКМ на значке расширения и выбрать "Блокировать элемент", после чего выбираем то, что хотим скрыть. Всего два клика. Блокированный элемент заносится в список.
Так выглядит выбор элемента
|
yurfed, сейчас использую AdGuard (как блокировщик рекламы и элементов), но бывает случае, когда блокировка элемента на ВК - не всегда работает нормально. По этому возник вопрос о скрипте... По моему, хорошо написаны скрипт получше будет работать чем расширение, черт знает как написанное.
|
Spuner, я вам предложил быстрый вариант, а там как хотите.
Ждите, может кто и напишет.
|
yurfed, я этим быстрым вариантом и сейчас пользуюсь, только он не очень...
А вы помочь не можете?
|
нет, к сожалению нет. Тут я не силён.
Но стало интересно - чем вам помешали эти кнопки :)
|
вроде бы
Код:
document.querySelector("selector").remove();
или
Код:
document.querySelector("селектор").style.display = "none";
https://developer.mozilla.org/ru/doc.../querySelector
селектор элемента можно скопировать (в Хроме) из devtools f12 (стрелка в левом верхнем углу - кликом выбираем элемент - ПКМ по выделенному тегу в окне devtools - в меню: copy->copy selector)
|
Цитата:
Цитата 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
|
Я в этом совсем ничего не понимаю.
|
Лучше последние 2-3 элемента взять (> это вложенность), потому что уникальный селектор может не совпасть на другой странице с этой кнопкой.
|
Sham, если я выложу селекторы всех элементов, можете написать скрипт?
|
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();
// повторить для каждого селектора
});
|
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
|
|
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
|
Цитата:
Цитата 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();
});
Хотя, надо отметить, что с первым вариантом что со вторым - второй (и последующие) элемент в обеих случаях не скрывается. Неважно, сколько селекторов был прописан в команде - один, два, три и т.д...
|
Spuner, внутри "window.addEventListener("DOMContentLoaded", function() { ..... });" код выполняется строго после загрузки страницы. В гризманки можно настроить начало выполнения скрипта, и тогда этот блок не нужен. Иначе, нужен один этот блок, внутри которого ряд querySelector'ов, либо если совсем правильно - с массивом селекторов и условием наличия элемента.
Если селектор не находит элемент на другой странице, значит надо копировать его на всех страницах и сравнивать между собой, пробуя удалять изменяющиеся части. Тут без экспериментов не обойтись.
|
Время: 09:30.
© OSzone.net 2001-