gpt4 book ai didi

javascript - 获取谷歌浏览器的根书签文件夹

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:43 39 4
gpt4 key购买 nike

我正在尝试在 Chrome 扩展程序中编写一个更好的书签管理器。问题是没有关于如何实际使用 bookmarks API 的简单示例(我可以找到) .

我查看了示例源代码(当我 d/led 并将它安装到我的计算机上时,它除了提供一个搜索框之外没有做任何事情。打字/打字和按回车无法做任何事情)并且不能找到任何有用的东西。

我的最终目标是做一个扩展,允许我保存页面以供以后阅读不必去某个地方注册某个服务的帐户。所以我计划在根文件夹/其他书签中创建一个或两个书签文件夹 - 至少一个“未读页面”文件夹。在该文件夹中,我将创建未读书签。当用户将项目标记为已读时,它将从该文件夹中删除。

这就是我想要做的...任何帮助都将不胜感激,即使它只是给我指出一些很好的例子。

更新:

...<script>
function display(tree){
document.getElementById("Output").innerHTML = tree;
}
function start(){
chrome.bookmarks.getTree(display);
}
</script>
</head>
<body>
<h4 id="Output"></h4>
<script>
start();
</script>
...

显示 [object Object],这表明(至少对 JavaScript 经验有限的我来说)存在一个对象。但是如何访问该对象的成员呢?

tree 更改为 tree.id 或任何其他看起来像参数的内容会显示 undefined

最佳答案

目前,在书签API中没有找到“其他书签”或“书签栏”等文件夹的好方法。您将不得不遍历所有书签并找到哪个节点具有这些根文件夹并保存其书签 ID。该错误已提交 Issue 21330 .

root id始终为0,当我说0时,它对应“书签栏”和“其他书签”。与任何树结构一样,每个节点都有子节点。如果你想获取一个文件夹下的所有书签,你可以使用 getChildren API 并递归地获取每个节点(你也可以迭代地做)。例如,以下将获取每个书签:

printBookmarks('0');

function printBookmarks(id) {
chrome.bookmarks.getChildren(id, function(children) {
children.forEach(function(bookmark) {
console.debug(bookmark.title);
printBookmarks(bookmark.id);
});
});
}

现在,为什么我们必须为每次迭代调用 API?他们是获取整棵树的 API。如果您尝试过,您会看到 getTree 中的每个节点都有一个子节点列表。这是完美的:

chrome.bookmarks.getTree(function(bookmarks) {
printBookmarks(bookmarks);
});

function printBookmarks(bookmarks) {
bookmarks.forEach(function(bookmark) {
console.debug(bookmark.id + ' - ' + bookmark.title + ' - ' + bookmark.url);
if (bookmark.children)
printBookmark(bookmark.children);
});
}

就是这样,您也可以迭代地执行所有这些操作,这样性能会更好,但您可以弄明白 :) 请注意,由于您想重做书签栏,您可以在扩展中覆盖该页面(很快): http://code.google.com/chrome/extensions/override.html

如果您想显示一个漂亮的 HTML 书签树,您可以通过扩展我在上面显示的 getTree 功能来接受父 DOM 来轻松地做到这一点。你可以做点什么like this .编辑代码以使用 getTree 或折叠所有内容并使用 getChildren 并在他们请求时获取更多书签。

关于javascript - 获取谷歌浏览器的根书签文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2812622/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com