javascript - 如何使浏览器自定义样式 (Chrome) 在 Google Earth Web 上运行?
问题描述
我正在使用Chrome浏览器,版本 87.0.4280.141(官方版本)(64 位)。出于特定原因,我在某些网站上使用Stylus扩展来自定义样式。
我想在https://earth.google.com/web/上隐藏某些界面元素。例如,div id="earthNavigationElements"。目前,每次访问 Google 地球时,我都会手动执行此操作,方法是右键单击元素、检查,然后从 HTML 中删除元素。
对于任何其他网站,Stylus 都可以正常工作,我只需要#div-id { display:none }
相应的元素。但它对 Google Earth Web 没有影响。似乎谷歌有某种保护。
我也尝试过 Firefox + Stylus,但它也无法在那里工作。
任何想法如何在谷歌地球网络上应用自定义样式,无论有没有扩展,这样我就不必每次都手动隐藏某些界面元素?
解决方案
我认为这是因为您要隐藏的元素位于内部,shadow-root
因此您无法轻松地将 CSS 应用于该元素。
我有这个 JavaScript 代码可以帮助您解决问题:
var earthElements = document.querySelectorAll('earth-app');
earthElements.forEach(function(item){
var root = item.shadowRoot;
root.querySelector('#earthNavigationElements').style.display = 'none';
})
推荐阅读
- android - Flutter:禁用平板电脑和 ipad 的应用程序
- javascript - 似乎无法在片段着色器中增加一些东西......精度问题?
- typescript - 找不到 TypeScript before() 和 after()
- javascript - 在 Redux Reducer 中保存 API 响应/数据
- javascript - 如何删除 v-for 数组中的重复值?
- go - 为什么 mqtt 客户端使用唯一的 clientId 重新连接代理?
- python - python jsonschema在列表项上使用模式不起作用
- c# - 在 C# 的抽象类中的具体方法中调用抽象方法
- python - SQLITE3,逐行请求/更新
- c++ - boost-beast 中的异常