在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;
我不知道该怎么做才能通过扩展程序覆盖它?
用例:我有很多文件夹和嵌套文件夹以及嵌套嵌套文件夹。我经常尝试导航到顶级文件夹,但谷歌在开始自动扩展之前的悬停时间非常短,很多时候文件夹我并不想扩展最终扩展。
答案 0 :(得分:4)
为此找到相关代码做得好。
很遗憾,我认为Chrome扩展程序无法访问这些文件。这需要API来处理这些变量(并且在更改任何设置时您必须重建应用程序)。
通过一些研究,我能够提出两种选择。
选项1
与扩展程序(特别是如果这只是一次性覆盖)相比,更好的解决方案是分叉项目并为您自己的自定义版本的Chromium编辑该代码。 Here是开始使用代码以及构建/运行您自己的Chromium版本的指南。也许如果你想出一个很好的解决方案来解决这个问题,你甚至可以提交一个补丁:)更好的方法是为这些文件构建一个API,然后你可以创建一个扩展。
专业人员:您只需更改代码中的一个数字即可。 缺点:您必须处理维护Chromium的分叉版本。
选项2
覆盖页面是一种将您的扩展程序中的HTML文件替换为Google Chrome通常提供的网页的方法。除了HTML之外,覆盖页面通常还包含CSS和JavaScript代码。
扩展程序可以取代书签管理器:用户从Chrome菜单中选择书签管理器菜单项时显示的页面,或者在Mac上从书签菜单中选择书签管理器项目时显示的页面。您也可以输入网址chrome:// bookmarks。
来访问此页面
使用chrome.bookmarks
,您可以构建自定义的书签页面。
专业人士:解决方案只需要扩展程序! 缺点:您必须从头开始构建页面或找到其他一些复制技术。
许多扩展已经实现了这种方法,也许通过谷歌搜索(关键字“自定义”和“经理”是有帮助的),您也可以找到您喜欢或可以贡献的解决方案。