LoginSignup
0
0

はじめに

ブックマーク関連のChrome拡張機能開発において
「ブックマーク」ではなく「フォルダ」を取得する方法について

必要な権限

manifest.jsonに以下の記述が必要です。

"permissions": ["bookmarks"]

ブックマークの「フォルダ」の仕組み

URL が NULL または指定されていない場合は、フォルダになります。

「ブックマークとは、特定のページのURLを保存する機能」である
=「URLがなければ、ブックマークではない何か」である
=「それをフォルダとする」

このような仕組みのようです。
フォルダとブックマークを同じテーブルとして管理できる、効率の良い仕組みですね。

「フォルダ(親)」の取得方法

const parent = chrome.bookmarks.get(id) //idにフォルダ(親)のidを入れる

これで取得可能です。

フォルダ名を取得したいときは

// 先程の続き
parent[0].title

で取得可能

その他のプロパティはこちら

「フォルダ」のidを取得したい時

特定のブックマークの親(フォルダ)を取得したい時には
まずブックマークを取得し、
そのブックマークから所属する親フォルダidを取得します。

chrome.bookmarks.search(query, function(bookmarks) {
  bookmarks.forEach(async function(bookmark) {
    const parent = await chrome.bookmarks.get(bookmark.parentId);
    console.log(parent[0].title + ' / ' + bookmark.title)
    // フォルダ / ブックマーク名 というログになる
  })
})

async / awaitchrome.bookmarks.get がプロミスを返すため使用しています。

関連記事:ポップアップの検証(開発者ツール)

console.log() の確認方法はこちら

おわりに

以上、ブックマークの「フォルダ」についてでした。

次は何を書こうかしら・・・

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0