Как заставить пользовательские стили браузера (Chrome) работать в Google Earth Web?

#javascript #css #google-chrome #google-earth

#javascript #css #google-chrome #google-планета Земля

Вопрос:

Я использую браузер Chrome версии 87.0.4280.141 (официальная сборка) (64-разрядная версия). И я использую расширение Stylus для пользовательских стилей на некоторых веб-сайтах по определенным причинам.

Я хочу скрыть определенные элементы интерфейса на https://earth.google.com/web /. Например, идентификатор div=»earthNavigationElements». В настоящее время я делаю это вручную каждый раз, когда посещаю Google Планета Земля, щелкая правой кнопкой мыши по элементам, проверяя, а затем удаляя элемент из HTML.

Для любого другого веб-сайта Stylus работает нормально, у меня просто есть #div-id { display:none } для соответствующих элементов. Но это не влияет на Google Earth Web. Похоже, у Google есть какая-то защита.

Я тоже пробовал Firefox Stylus, и там он тоже не работает.

Есть идеи, как применить пользовательские стили в Google Earth Web, с расширением или без него, чтобы мне не приходилось каждый раз вручную скрывать определенные элементы интерфейса?

Комментарии:

1. Вероятно, они используют MutationObserver для обнаружения изменений в DOM

Ответ №1:

Я думаю, это связано с тем, что элемент, который вы хотите скрыть, находится внутри shadow-root , поэтому вы не можете легко применить CSS к этим элементам.

У меня есть этот код JavaScript, который поможет вам решить вашу проблему:

 var earthElements = document.querySelectorAll('earth-app');
earthElements.forEach(function(item){
  var root = item.shadowRoot;
  root.querySelector('#earthNavigationElements').style.display = 'none';
})
 

Комментарии:

1. Как мне использовать приведенный выше код? Куда мне это поместить?

2. вы можете поместить его в <script> script code here </script> перед </body>

3. Что <body> вы имеете в виду? Я просматриваю earth.google.com/web в браузере Chrome. Я не создаю веб-страницу.