Chrome扩展程序可将左侧边栏隐藏在Gmail中

时间:2020-07-23 14:58:44

标签: javascript google-chrome-extension

在Gmail页面上,有两种显示左侧边栏的方法。一,永远扩大。二是折叠视图,将鼠标悬停时会展开。我知道我的文件夹/标签图标/颜色,因此,侧边栏自动展开对我来说很分散注意力,并且希望使其保持折叠状态。

我能够使用Chrome的DevTools检查Gmail页面,并确定元素及其类名。我能够使用Chrome的DevTools从相应元素中删除“ mouseenter”事件监听器,以实现我的目标。但是在页面刷新时,“ mouseenter”侦听器又回来了,为了使我的生活更轻松,我正在创建一个Chrome扩展程序,以使Gmail的左侧边栏隐藏起来而不响应“ mouseenter”。

我是不熟悉JavaScript和编写chrome扩展程序的人,但是到目前为止,我已经注册了一个在加载Gmail页面时运行的内容脚本。

当我这样做时,侧边栏被隐藏了,所以我知道我拥有正确的元素

var sidebar = document.getElementsByClassName("nH oy8Mbf nn aeN bhZ");
sidebar[0].style.display = "none";

但是,当我尝试删除事件监听器时,它不起作用(侧边栏继续响应“ mouseenter”)。

var sidebar = document.getElementsByClassName("nH oy8Mbf nn aeN bhZ");
sidebar[0].removeEventListener("mouseenter", null);

注意:由于无法确定mouseenter侦听器的功能,因此我将“ null”作为第二个(函数)参数

我还尝试使用此代码块覆盖侦听器(在stackoverflow上看到它):

var sidebar = document.getElementsByClassName("nH oy8Mbf nn aeN bhZ");

sidebar[0].addEventListener("mouseenter", function (event) {
  event.stopPropagation();
}, true);

到目前为止,我还没有成功。如果有其他方法或我的方法有任何问题,请告诉我。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用CSS和一些Javascript解决了该问题。这种方法不会删除事件侦听器。 Chrome扩展程序的源代码在这里:

https://github.com/workingsunil/chrome-extension-hidden-sidebar

功能:

  1. 在鼠标悬停时,左侧边栏不再自动展开/折叠
  2. 标签上显示的未读邮件计数
  3. 单击“更多”按钮时,将显示完整的侧边栏

提示gmail-chrome-extension-boilerplate的页面加载等待时间。

相关问题