chrome.bookmarks

refresh date: 2026-09-25 robots: noindex

يؤدي هذا الإذن إلى ظهور تحذير.

الوصف

استخدِم واجهة برمجة التطبيقات chrome.bookmarks لإنشاء الإشارات المرجعية وتنظيمها ومعالجتها بطريقة أخرى. اطّلِع أيضًا على صفحات الإلغاء التي يمكنك استخدامها لإنشاء صفحة مخصّصة لمدير الإشارات المرجعية.

الأذونات

bookmarks

يؤدي النقر على النجمة إلى إضافة إشارة مرجعية

البيان

يجب الإفصاح عن إذن "الإشارات المرجعية" في بيان الإضافة لاستخدام واجهة برمجة التطبيقات للإشارات المرجعية. على سبيل المثال:

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

العناصر والخصائص

يتم تنظيم الإشارات المرجعية في شجرة، حيث تكون كل عقدة في الشجرة إما إشارة مرجعية أو مجلدًا (يُسمى أحيانًا مجموعة). يتم تمثيل كل عقدة في الشجرة بواسطة عنصر bookmarks.BookmarkTreeNode.

يتم استخدام سمات BookmarkTreeNode في جميع واجهات برمجة تطبيقات chrome.bookmarks. على سبيل المثال، عند استدعاء bookmarks.create، يتم تمرير العقدة الرئيسية الجديدة (parentId)، وسمات index وtitle وurl للعقدة اختياريًا. يمكنك الاطّلاع على bookmarks.BookmarkTreeNode للحصول على معلومات حول السمات التي يمكن أن تتضمّنها العقدة.

أمثلة

ينشئ الرمز التالي مجلدًا بعنوان "إشارات مرجعية للإضافات". تحدّد الوسيطة الأولى في create() خصائص المجلد الجديد. تحدد الوسيطة الثانية دالة ليتم تنفيذها بعد إنشاء المجلد.

chrome.bookmarks.create(
  {'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
  function(newFolder) {
    console.log("added folder: " + newFolder.title);
  },
);

ينشئ المقتطف التالي إشارة مرجعية تشير إلى مستندات المطوّرين الخاصة بالإضافات. بما أنّه لن يحدث أي شيء سيئ في حال تعذّر إنشاء الإشارة المرجعية، لا يحدّد هذا الرمز دالّة رد الاتصال.

chrome.bookmarks.create({
  'parentId': extensionsFolderId,
  'title': 'Extensions doc',
  'url': 'https://developer.chrome.com/docs/extensions',
});

لتجربة واجهة برمجة التطبيقات هذه، ثبِّت مثال واجهة برمجة التطبيقات Bookmarks API من مستودع chrome-extension-samples.

الأنواع

BookmarkTreeNode

عقدة (إما إشارة مرجعية أو مجلد) في شجرة الإشارات المرجعية يتم ترتيب العُقد الفرعية داخل المجلد الرئيسي.

الخصائص

  • الأطفال

    BookmarkTreeNode[] اختياري

    قائمة مع ترتيب بالعُقد الفرعية لهذه العقدة

  • dateAdded

    number اختيارية

    وقت إنشاء هذه العقدة، بالملي ثانية منذ بداية حقبة معيّنة (new Date(dateAdded)).

  • dateGroupModified

    number اختيارية

    تاريخ آخر تغيير لمحتوى هذا المجلد، بالمللي ثانية منذ بداية العصر

  • dateLastUsed

    number اختيارية

    الإصدار 114 من Chrome والإصدارات الأحدث

    وقت فتح هذه العقدة آخر مرة، بالملي ثانية منذ بداية حقبة معيّنة. لا يتم ضبطها للمجلدات.

  • folderType

    FolderType اختياري

    الإصدار 134 من Chrome والإصدارات الأحدث

    إذا كان هذا المجلد متوفّرًا، يعني ذلك أنّه تمت إضافته من خلال المتصفّح ولا يمكن للمستخدم أو الإضافة تعديله. يمكن تعديل العُقد الفرعية إذا لم يتم ضبط السمة unmodifiable لهذه العقدة. يتم حذفها إذا كان بإمكان المستخدم والإضافة تعديل العقدة (الإعداد التلقائي).

    قد يكون هناك صفر أو عقدة واحدة أو أكثر من كل نوع مجلد. قد يضيف المتصفّح مجلدًا أو يزيله، ولكن ليس من خلال واجهة برمجة التطبيقات للإضافات.

  • id

    سلسلة

    المعرّف الفريد للعقدة وتكون أرقام التعريف فريدة ضمن الملف الشخصي الحالي، وتظل صالحة حتى بعد إعادة تشغيل المتصفّح.

  • الفهرس

    number اختيارية

    موضع هذه العقدة ضمن المجلد الرئيسي، بدءًا من 0.

  • parentId

    string اختياري

    ‫id المجلد الرئيسي يتم حذفها للعقدة الأساسية.

  • جارٍ المزامنة

    قيمة منطقية

    الإصدار 134 من Chrome والإصدارات الأحدث

    تحدّد ما إذا كان المتصفّح يزامن هذه العقدة مع مساحة التخزين في حساب المستخدم عن بُعد. يمكن استخدام هذا الإجراء للتمييز بين إصدارات FolderType نفسها على الحساب والإصدارات المحلية فقط. قد تتغيّر قيمة هذه السمة لعقدة حالية، على سبيل المثال نتيجة لإجراء من المستخدم.

    ملاحظة: يشير ذلك إلى ما إذا كان قد تم حفظ العقدة في موفّر الحسابات المضمّن في المتصفّح. من الممكن مزامنة عقدة من خلال جهة خارجية، حتى إذا كانت هذه القيمة خطأ.

    بالنسبة إلى العُقد المُدارة (العُقد التي تم ضبط unmodifiable فيها على true)، ستكون هذه السمة دائمًا false.

  • title

    سلسلة

    النص المعروض للعقدة.

  • غير قابل للتعديل

    ‫"managed"
     اختيارية

    يشير إلى سبب عدم إمكانية تعديل هذه العقدة. تشير القيمة managed إلى أنّه تم ضبط هذه العقدة من قِبل مشرف النظام أو الوصي على مستخدم تحت الإشراف. يتم حذفها إذا كان بإمكان المستخدم والإضافة تعديل العقدة (الإعداد التلقائي).

  • url

    string اختياري

    عنوان URL الذي يتم الانتقال إليه عندما ينقر المستخدم على الإشارة المرجعية. يتم حذفها للمجلدات.

BookmarkTreeNodeUnmodifiable

الإصدار 44 من Chrome أو الإصدارات الأحدث

يشير إلى سبب عدم إمكانية تعديل هذه العقدة. تشير القيمة managed إلى أنّ مشرف النظام قد ضبط هذه العقدة. يتم حذفها إذا كان بإمكان المستخدم والإضافة تعديل العقدة (الإعداد التلقائي).

القيمة

"managed"

CreateDetails

العنصر الذي تم تمريره إلى الدالة create()‎.

الخصائص

  • الفهرس

    number اختيارية

  • parentId

    string اختياري

    يتم ضبط هذه الخاصية تلقائيًا على مجلد "إشارات مرجعية أخرى".

  • title

    string اختياري

  • url

    string اختياري

FolderType

الإصدار 134 من Chrome والإصدارات الأحدث

يشير إلى نوع المجلد.

Enum

"bookmarks-bar"
المجلد الذي يظهر محتواه في أعلى نافذة المتصفّح

"other"
الإشارات المرجعية التي تظهر في القائمة الكاملة للإشارات المرجعية على جميع الأنظمة الأساسية

‫"mobile"
الإشارات المرجعية المتاحة بشكل عام على الأجهزة الجوّالة للمستخدم، ولكن يمكن تعديلها من خلال الإضافة أو في مدير الإشارات المرجعية.

"managed"
مجلد ذو مستوى أعلى قد يكون موجودًا إذا ضبط مشرف النظام أو الوصي على مستخدم تحت الإشراف الإشارات المرجعية.

الخصائص

MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

متوقّف نهائيًا

لم يعُد Chrome يفرض قيودًا على عمليات كتابة الإشارات المرجعية.

القيمة

1000000

MAX_WRITE_OPERATIONS_PER_HOUR

متوقّف نهائيًا

لم يعُد Chrome يفرض قيودًا على عمليات كتابة الإشارات المرجعية.

القيمة

1000000

ROOT_NODE_ID

الإصدار 145 من Chrome والإصدارات الأحدث

‫id المرتبط بالعقدة على مستوى الجذر

القيمة

"0"

الطُرق

create()

Promise
chrome.bookmarks.create(
  bookmark: CreateDetails,
  callback?: function,
)
: Promise<BookmarkTreeNode>

يتيح هذا الإذن إنشاء إشارة مرجعية أو مجلد ضمن parentId المحدّد. إذا كان عنوان URL فارغًا أو غير متوفّر، سيكون مجلدًا.

المعلمات

المرتجعات

  • الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

get()

Promise
chrome.bookmarks.get(
  idOrIdList: string | [string, ...string[]],
  callback?: function,
)
: Promise<BookmarkTreeNode[]>

يستردّ هذا الإذن BookmarkTreeNode(s) المحدّدة.

المعلمات

  • idOrIdList

    string | [string, ...string[]]

    معرّف واحد بقيمة سلسلة، أو مصفوفة من المعرّفات بقيمة سلسلة

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (results: BookmarkTreeNode[]) => void

المرتجعات

  • Promise<BookmarkTreeNode[]>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getChildren()

Promise
chrome.bookmarks.getChildren(
  id: string,
  callback?: function,
)
: Promise<BookmarkTreeNode[]>

يستردّ هذا الإذن العناصر الفرعية لمعرّف BookmarkTreeNode المحدّد.

المعلمات

  • id

    سلسلة

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (results: BookmarkTreeNode[]) => void

المرتجعات

  • Promise<BookmarkTreeNode[]>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getRecent()

Promise
chrome.bookmarks.getRecent(
  numberOfItems: number,
  callback?: function,
)
: Promise<BookmarkTreeNode[]>

تستردّ هذه الطريقة الإشارات المرجعية التي تمت إضافتها مؤخرًا.

المعلمات

  • numberOfItems

    الرقم

    الحد الأقصى لعدد العناصر التي سيتم عرضها.

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (results: BookmarkTreeNode[]) => void

المرتجعات

  • Promise<BookmarkTreeNode[]>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getSubTree()

Promise
chrome.bookmarks.getSubTree(
  id: string,
  callback?: function,
)
: Promise<BookmarkTreeNode[]>

تسترد هذه الطريقة جزءًا من التسلسل الهرمي للإشارات المرجعية، بدءًا من العقدة المحدّدة.

المعلمات

  • id

    سلسلة

    رقم تعريف جذر الشجرة الفرعية المطلوب استردادها

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (results: BookmarkTreeNode[]) => void

المرتجعات

  • Promise<BookmarkTreeNode[]>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

getTree()

Promise
chrome.bookmarks.getTree(
  callback?: function,
)
: Promise<BookmarkTreeNode[]>

تسترد هذه الطريقة التسلسل الهرمي الكامل للإشارات المرجعية.

المعلمات

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (results: BookmarkTreeNode[]) => void

المرتجعات

  • Promise<BookmarkTreeNode[]>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

move()

Promise
chrome.bookmarks.move(
  id: string,
  destination: object,
  callback?: function,
)
: Promise<BookmarkTreeNode>

لنقل BookmarkTreeNode المحدّد إلى الموقع الجغرافي المقدَّم

المعلمات

  • id

    سلسلة

  • الوجهة

    عنصر

    • الفهرس

      number اختيارية

    • parentId

      string اختياري

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (result: BookmarkTreeNode) => void

المرتجعات

  • الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

remove()

Promise
chrome.bookmarks.remove(
  id: string,
  callback?: function,
)
: Promise<void>

لإزالة إشارة مرجعية أو مجلد إشارات مرجعية فارغ

المعلمات

  • id

    سلسلة

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    () => void

المرتجعات

  • وعد<فراغ>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

removeTree()

Promise
chrome.bookmarks.removeTree(
  id: string,
  callback?: function,
)
: Promise<void>

لإزالة مجلد إشارات مرجعية بشكل متكرر

المعلمات

  • id

    سلسلة

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    () => void

المرتجعات

  • وعد<فراغ>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

Promise
chrome.bookmarks.search(
  query: string | object,
  callback?: function,
)
: Promise<BookmarkTreeNode[]>

يبحث عن BookmarkTreeNodes التي تتطابق مع طلب البحث المحدّد. تؤدي طلبات البحث المحدّدة باستخدام عنصر إلى إنشاء BookmarkTreeNodes مطابقة لجميع السمات المحدّدة.

المعلمات

  • query

    string | object

    إما سلسلة من الكلمات والعبارات المقتبسة التي تتم مطابقتها مع عناوين URL للإشارات المرجعية وعناوينها، أو كائن. إذا كان كائنًا، يمكن تحديد السمات query وurl وtitle وسيتم إنشاء إشارات مرجعية تتطابق مع جميع السمات المحدّدة.

    • query

      string اختياري

      سلسلة من الكلمات والعبارات المقتبسة التي تتم مطابقتها مع عناوين URL للإشارات المرجعية وعناوينها.

    • title

      string اختياري

      عنوان الإشارة المرجعية، ويجب أن يتطابق حرفيًا

    • url

      string اختياري

      عنوان URL للإشارة المرجعية، ويتطابق حرفيًا يُرجى العِلم أنّ المجلدات ليس لها عنوان URL.

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (results: BookmarkTreeNode[]) => void

المرتجعات

  • Promise<BookmarkTreeNode[]>

    الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

update()

Promise
chrome.bookmarks.update(
  id: string,
  changes: object,
  callback?: function,
)
: Promise<BookmarkTreeNode>

تعديل خصائص إشارة مرجعية أو مجلد حدِّد فقط السمات التي تريد تغييرها، وستبقى السمات غير المحدّدة بدون تغيير. ملاحظة: لا تتوفّر حاليًا سوى السمتَين "title" و"url".

المعلمات

  • id

    سلسلة

  • التغييرات

    عنصر

    • title

      string اختياري

    • url

      string اختياري

  • callback

    function اختياري

    تظهر المَعلمة callback على النحو التالي:

    (result: BookmarkTreeNode) => void

المرتجعات

  • الإصدار 90 من Chrome أو الإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.

الفعاليات

onChanged

chrome.bookmarks.onChanged.addListener(
  callback: function,
)

يتم تنشيط هذا الحدث عند تغيير إشارة مرجعية أو مجلد. ملاحظة: في الوقت الحالي، لا تؤدي سوى التغييرات في العنوان وعنوان URL إلى تفعيل هذه الميزة.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (id: string, changeInfo: object) => void

    • id

      سلسلة

    • changeInfo

      عنصر

      • title

        سلسلة

      • url

        string اختياري

onChildrenReordered

chrome.bookmarks.onChildrenReordered.addListener(
  callback: function,
)

يتم تنشيط هذا الحدث عندما يتغيّر ترتيب العناصر الفرعية لمجلد بسبب ترتيبها في واجهة المستخدم. لا يتم استدعاء هذه الدالة نتيجةً لاستدعاء الدالة move()‎.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (id: string, reorderInfo: object) => void

    • id

      سلسلة

    • reorderInfo

      عنصر

      • childIds

        string[]

onCreated

chrome.bookmarks.onCreated.addListener(
  callback: function,
)

يتم تنشيط هذا الحدث عند إنشاء إشارة مرجعية أو مجلد.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (id: string, bookmark: BookmarkTreeNode) => void

onImportBegan

chrome.bookmarks.onImportBegan.addListener(
  callback: function,
)

يتم تنشيط هذا الحدث عند بدء جلسة استيراد الإشارات المرجعية. يجب أن تتجاهل أدوات المراقبة المكلفة تحديثات onCreated إلى أن يتم تنشيط onImportEnded. يجب أن يتعامل المراقبون مع الإشعارات الأخرى على الفور.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    () => void

onImportEnded

chrome.bookmarks.onImportEnded.addListener(
  callback: function,
)

يتم تنشيط هذا الحدث عند انتهاء جلسة استيراد الإشارات المرجعية.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    () => void

onMoved

chrome.bookmarks.onMoved.addListener(
  callback: function,
)

يتم تشغيل هذا الحدث عند نقل إشارة مرجعية أو مجلد إلى مجلد رئيسي مختلف.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (id: string, moveInfo: object) => void

    • id

      سلسلة

    • moveInfo

      عنصر

      • الفهرس

        الرقم

      • oldIndex

        الرقم

      • oldParentId

        سلسلة

      • parentId

        سلسلة

onRemoved

chrome.bookmarks.onRemoved.addListener(
  callback: function,
)

يتم تنشيط هذا الحدث عند إزالة إشارة مرجعية أو مجلد. عند إزالة مجلد بشكل متكرر، يتم إرسال إشعار واحد للمجلد، ولا يتم إرسال أي إشعار لمحتوياته.

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (id: string, removeInfo: object) => void

    • id

      سلسلة

    • removeInfo

      عنصر

      • الفهرس

        الرقم

      • عقدة
        الإصدار 48 من Chrome أو الإصدارات الأحدث
      • parentId

        سلسلة