我正在尝试编写一个Chrome扩展程序,该扩展程序会将所有新书签放入默认文件夹中。
JavaScript似乎正确,但是书签未移动到指定位置。 您知道这段代码有什么问题吗?
chrome.bookmarks.onCreated.addListener(function(id) {
chrome.bookmarks.move(id, {parentId: '2'});
});
答案 0 :(得分:0)
您是否在扩展清单中声明了“书签”权限?您必须在扩展清单中声明“书签”权限才能使用书签API。
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
答案 1 :(得分:0)
我认为您的代码很好,但是用户体验有点奇怪。创建书签时,您会看到如下提示。
当您单击“完成”按钮时,书签将从当前位置移动到下拉菜单中指定的位置。
我在具有bookmarks
权限的扩展程序中使用以下代码段验证了此行为。
// Copyright 2018 Google LLC.
// SPDX-License-Identifier: Apache-2.0
chrome.bookmarks.onCreated.addListener(function handleCreated(id, node) {
console.log(`CREATED tab ${id} on ${node.parentId}`);
console.log(`MOVEING (DEFAULT) tab ${node.id} to parent ${node.parentId}`);
chrome.bookmarks.move(id, {parentId: '2'}, function afterMove(node) {
console.log(`MOVED (DEFAULT) tab ${node.id} to parent ${node.parentId}`);
});
});
chrome.bookmarks.onMoved.addListener(function handleMove(id, moveInfo) {
console.log(`MOVE tab ${id} from ${moveInfo.oldParentId} to ${moveInfo.parentId}`);
});
创建书签时,我看到了以下日志消息
CREATED tab 37 on 1
MOVEING (DEFAULT) tab 37 to parent 1
MOVE tab 37 from 1 to 2
MOVED (DEFAULT) tab 37 to parent 2
当我单击“完成”时,我看到了
MOVE tab 37 from 2 to 1
如果幸运的话,您可以在本地重现此行为:)