书签的Chrome扩展程序API

时间:2019-01-02 21:54:59

标签: javascript google-chrome-extension

我正在尝试编写一个Chrome扩展程序,该扩展程序会将所有新书签放入默认文件夹中。

JavaScript似乎正确,但是书签未移动到指定位置。 您知道这段代码有什么问题吗?

chrome.bookmarks.onCreated.addListener(function(id) {
  chrome.bookmarks.move(id, {parentId: '2'});
});

2 个答案:

答案 0 :(得分:0)

您是否在扩展清单中声明了“书签”权限?您必须在扩展清单中声明“书签”权限才能使用书签API。

      {
        "name": "My extension",
        ...
        "permissions": [
          "bookmarks"
        ],
        ...
      }

https://developer.chrome.com/extensions/bookmarks

答案 1 :(得分:0)

我认为您的代码很好,但是用户体验有点奇怪。创建书签时,您会看到如下提示。

Chrome bookmark modal

当您单击“完成”按钮时,书签将从当前位置移动到下拉菜单中指定的位置。

我在具有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

如果幸运的话,您可以在本地重现此行为:)