编辑内置Chrome书签管理器文件夹/子文件夹自动扩展?

时间:2016-09-21 14:50:53

标签: javascript api google-chrome google-chrome-extension bookmarks

在Chrome中使用内置书签管理器时,左侧有一个导航窗格,其中包含所有包含书签的文件夹/子文件夹。当拖放文件夹/书签时拖放文件夹时,它会在x段时间(400毫秒)后自动展开文件夹(例如显示所有子文件夹)。

我想制作一个变量来控制Chrome在自动展开自定义文件夹之前等待的时间。

我发现Chromium中的代码决定了在拖放时自动展开文件夹之前等待的时间:

  

// src / chrome / browsers / resources / bookmark_manager / js / dnd.js

相关的代码行是:

/** * Delay for expanding folder when pointer hovers on folder in tree view in * milliseconds. * @type {number} * @const */ // TODO(yosin): EXPAND_FOLDER_DELAY should follow system settings. 400ms is // taken from Windows default settings. var EXPAND_FOLDER_DELAY = 400;

我不知道该怎么做才能通过扩展程序覆盖它?

用例:我有很多文件夹和嵌套文件夹以及嵌套嵌套文件夹。我经常尝试导航到顶级文件夹,但谷歌在开始自动扩展之前的悬停时间非常短,很多时候文件夹我并不想扩展最终扩展。

1 个答案:

答案 0 :(得分:4)

为此找到相关代码做得好。

很遗憾,我认为Chrome扩展程序无法访问这些文件。这需要API来处理这些变量(并且在更改任何设置时您必须重建应用程序)。

通过一些研究,我能够提出两种选择。

选项1

与扩展程序(特别是如果这只是一次性覆盖)相比,更好的解决方案是分叉项目并为您自己的自定义版本的Chromium编辑该代码。 Here是开始使用代码以及构建/运行您自己的Chromium版本的指南。也许如果你想出一个很好的解决方案来解决这个问题,你甚至可以提交一个补丁:)更好的方法是为这些文件构建一个API,然后你可以创建一个扩展。

专业人员:您只需更改代码中的一个数字即可。 缺点:您必须处理维护Chromium的分叉版本。

选项2

创建Override Page

  

覆盖页面是一种将您的扩展程序中的HTML文件替换为Google Chrome通常提供的网页的方法。除了HTML之外,覆盖页面通常还包含CSS和JavaScript代码。

     

扩展程序可以取代书签管理器:用户从Chrome菜单中选择书签管理器菜单项时显示的页面,或者在Mac上从书签菜单中选择书签管理器项目时显示的页面。您也可以输入网址chrome:// bookmarks。

来访问此页面

使用chrome.bookmarks,您可以构建自定义的书签页面。

专业人士:解决方案只需要扩展程序! 缺点:您必须从头开始构建页面或找到其他一些复制技术。

许多扩展已经实现了这种方法,也许通过谷歌搜索(关键字“自定义”和“经理”是有帮助的),您也可以找到您喜欢或可以贡献的解决方案。