refresh date: 2026-09-25 robots: noindex
الوصف
استخدِم واجهة برمجة التطبيقات chrome.windows للتفاعل مع نوافذ المتصفّح. يمكنك استخدام واجهة برمجة التطبيقات هذه لإنشاء النوافذ وتعديلها وإعادة ترتيبها في المتصفّح.
البيان
عند طلب windows.Window، يحتوي على مصفوفة من عناصر tabs.Tab. يجب
الإعلان عن إذن "tabs" في ملف البيان إذا كنت بحاجة إلى الوصول إلى سمات url
أو pendingUrl أو title أو favIconUrl في tabs.Tab. على سبيل المثال:
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}
النافذة الحالية
تتضمّن العديد من الدوال في نظام الإضافات وسيطة windowId اختيارية، يتم ضبطها تلقائيًا على
النافذة الحالية.
النافذة الحالية هي النافذة التي تحتوي على الرمز الذي يتم تنفيذه حاليًا. من المهمّ معرفة أنّ هذه النافذة قد تختلف عن النافذة في أعلى الشاشة أو النافذة التي يتم التركيز عليها.
على سبيل المثال، لنفترض أنّ إحدى الإضافات تنشئ بضع علامات تبويب أو نوافذ من ملف HTML واحد، وأنّ ملف HTML يحتوي على طلب إلى tabs.query(). النافذة الحالية هي النافذة التي تحتوي على الصفحة التي أجرت المكالمة، بغض النظر عن النافذة العلوية.
في حال استخدام مشغّلي الخدمات، تعود قيمة النافذة الحالية إلى آخر نافذة نشطة. في بعض الحالات، قد لا تكون هناك نافذة حالية لصفحات الخلفية.
أمثلة

لتجربة واجهة برمجة التطبيقات هذه، ثبِّت مثال واجهة برمجة التطبيقات للنوافذ من مستودع chrome-extension-samples.
الأنواع
CreateType
يحدّد نوع نافذة المتصفّح المطلوب إنشاؤها. تم إيقاف "panel" نهائيًا، وهي متاحة فقط للإضافات الحالية المدرَجة في القائمة المسموح بها على ChromeOS.
Enum
"normal"
يحدّد النافذة على أنّها نافذة عادية.
"popup"
يحدّد النافذة على أنّها نافذة منبثقة.
"panel"
يحدّد النافذة كلوحة.
QueryOptions
الخصائص
-
تعبئة
قيمة منطقية اختيارية
إذا كانت القيمة "صحيح"، يحتوي عنصر
windows.Windowعلى سمةtabsتتضمّن قائمة بعناصرtabs.Tab. لا تحتوي عناصرTabإلا على السماتurlوpendingUrlوtitleوfavIconUrlإذا كان ملف بيان الإضافة يتضمّن الإذن"tabs". -
windowTypes
WindowType[] اختيارية
في حال ضبط هذه السمة، تتم فلترة
windows.Windowالتي يتم عرضها استنادًا إلى نوعها. في حال ترك هذه السياسة بدون ضبط، يتم ضبط الفلتر التلقائي على['normal', 'popup'].
Window
الخصائص
-
alwaysOnTop
قيمة منطقية
ما إذا تم ضبط النافذة لتكون دائمًا في المقدّمة
-
مركّز
قيمة منطقية
يشير إلى ما إذا كانت النافذة هي النافذة محل التركيز حاليًا.
-
الارتفاع
number اختيارية
ارتفاع النافذة، بما في ذلك الإطار، بالبكسل في بعض الحالات، قد لا يتم تخصيص السمة
heightللنافذة، مثلاً عند طلب النوافذ المغلقة من واجهة برمجة التطبيقاتsessions. -
id
number اختيارية
رقم تعريف النافذة تكون معرّفات النوافذ فريدة ضمن جلسة المتصفّح. في بعض الحالات، قد لا يتم تعيين السمة
IDللنافذة، على سبيل المثال، عند الاستعلام عن النوافذ باستخدام واجهة برمجة التطبيقاتsessions، وفي هذه الحالة قد يتوفّر معرّف الجلسة. -
incognito
قيمة منطقية
ما إذا كانت النافذة في وضع التصفّح المتخفي أم لا
-
لليسار
number اختيارية
تمثّل هذه السمة إزاحة النافذة من الحافة اليسرى للشاشة بالبكسل. في بعض الحالات، قد لا يتم تخصيص السمة
leftللنافذة، مثلاً عند طلب النوافذ المغلقة من واجهة برمجة التطبيقاتsessions. -
sessionId
string اختياري
معرّف الجلسة المستخدَم لتحديد نافذة بشكل فريد، ويتم الحصول عليه من واجهة برمجة التطبيقات
sessions. -
الولاية
WindowState اختياري
حالة نافذة المتصفّح هذه
-
علامات التبويب
Tab[] اختيارية
مصفوفة من عناصر
tabs.Tabتمثّل علامات التبويب الحالية في النافذة -
العلوية
number اختيارية
تمثّل هذه السمة إزاحة النافذة من الحافة العلوية للشاشة بالبكسل. في بعض الحالات، قد لا يتم تخصيص السمة
topللنافذة، مثلاً عند طلب النوافذ المغلقة من واجهة برمجة التطبيقاتsessions. -
النوع
WindowType اختيارية
نوع نافذة المتصفّح هذه
-
العرض
number اختيارية
عرض النافذة، بما في ذلك الإطار، بالبكسل في بعض الحالات، قد لا يتم تخصيص السمة
widthللنافذة، مثلاً عند طلب النوافذ المغلقة من واجهة برمجة التطبيقاتsessions.
WindowState
حالة نافذة المتصفّح هذه في بعض الحالات، قد لا يتم تخصيص السمة state للنافذة، مثلاً عند طلب النوافذ المغلقة من واجهة برمجة التطبيقات sessions.
Enum
"normal"
حالة النافذة العادية (ليست مصغّرة أو مكيّفة أو في وضع ملء الشاشة)
"minimized"
حالة النافذة المصغّرة
"maximized"
حالة النافذة المكبَّرة
"fullscreen"
حالة النافذة في وضع ملء الشاشة
WindowType
نوع نافذة المتصفّح هذه. في بعض الحالات، قد لا يتم تخصيص السمة type للنافذة، مثلاً عند طلب النوافذ المغلقة من واجهة برمجة التطبيقات sessions.
Enum
"normal"
نافذة متصفّح عادية
"popup"
نافذة منبثقة في المتصفّح
"panel"
تم إيقاف هذه السمة نهائيًا في واجهة برمجة التطبيقات هذه. نافذة على شكل لوحة لتطبيق Chrome يمكن للإضافات الاطّلاع على نوافذ اللوحات الخاصة بها فقط.
"app"
تم إيقاف هذه السمة نهائيًا في واجهة برمجة التطبيقات هذه. نافذة تطبيق Chrome يمكن للإضافات الاطّلاع على نوافذ التطبيقات الخاصة بها فقط.
"devtools"
نافذة "أدوات المطوّرين"
الخصائص
WINDOW_ID_CURRENT
قيمة windowId التي تمثّل النافذة الحالية
القيمة
-2
WINDOW_ID_NONE
قيمة windowId التي تمثّل عدم توفّر نافذة في متصفّح Chrome
القيمة
-1
الطُرق
create()
chrome.windows.create(
createData?: object,
callback?: function,
): Promise<Window | undefined>
تنشئ (تفتح) نافذة متصفّح جديدة مع أي حجم أو موضع أو عنوان URL تلقائي اختياري.
المعلمات
-
createData
object اختياري
-
مركّز
قيمة منطقية اختيارية
إذا كانت القيمة
true، يتم فتح نافذة نشطة. إذا كانت القيمةfalse، يتم فتح نافذة غير نشطة. -
الارتفاع
number اختيارية
ارتفاع النافذة الجديدة بالبكسل، بما في ذلك الإطار في حال عدم تحديدها، يتم ضبطها تلقائيًا على الارتفاع الطبيعي.
-
incognito
قيمة منطقية اختيارية
يشير هذا الإعداد إلى ما إذا كان يجب أن تكون النافذة الجديدة نافذة تصفُّح متخفٍ.
-
لليسار
number اختيارية
عدد وحدات البكسل لتحديد موضع النافذة الجديدة من الحافة اليسرى للشاشة. في حال عدم تحديد هذه السمة، يتم إزاحة النافذة الجديدة بشكل طبيعي عن آخر نافذة تم التركيز عليها. يتم تجاهل هذه القيمة في اللوحات.
-
setSelfAsOpener
قيمة منطقية اختيارية
الإصدار 64 من Chrome أو الإصدارات الأحدثإذا كانت القيمة
true، يتم ضبط "window.opener" للنافذة التي تم إنشاؤها حديثًا على المتصل، وتكون في وحدة سياقات التصفّح ذات الصلة نفسها التي يتوفّر فيها المتصل. -
الولاية
WindowState اختياري
الإصدار 44 من Chrome أو الإصدارات الأحدثالحالة الأولية للنافذة لا يمكن دمج الحالات
minimizedوmaximizedوfullscreenمعleftأوtopأوwidthأوheight. -
tabId
number اختيارية
رقم تعريف علامة التبويب المطلوب إضافتها إلى النافذة الجديدة
-
العلوية
number اختيارية
عدد وحدات البكسل لتحديد موضع النافذة الجديدة من الحافة العلوية للشاشة. في حال عدم تحديد هذه السمة، يتم إزاحة النافذة الجديدة بشكل طبيعي عن آخر نافذة تم التركيز عليها. يتم تجاهل هذه القيمة في اللوحات.
-
النوع
CreateType اختياري
يحدّد نوع نافذة المتصفّح المطلوب إنشاؤها.
-
url
string | string[] اختيارية
عنوان URL أو مصفوفة من عناوين URL لفتحها كعلامات تبويب في النافذة. يجب أن تتضمّن عناوين URL المؤهّلة بالكامل مخطّطًا، مثل "http://www.google.com"، وليس "www.google.com". وتُعتبر عناوين URL غير المؤهَّلة بالكامل نسبية داخل الإضافة. يتم ضبط هذه السياسة تلقائيًا على صفحة "علامة تبويب جديدة".
-
العرض
number اختيارية
عرض النافذة الجديدة بالبكسل، بما في ذلك الإطار في حال عدم تحديدها، يتم ضبطها تلقائيًا على عرض طبيعي.
-
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(window?: Window) => void
-
نافذة
النافذة اختيارية
تحتوي على تفاصيل حول النافذة التي تم إنشاؤها.
-
المرتجعات
-
Promise<Window | undefined>
الإصدار 88 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
توفّر هذه الطريقة تفاصيل حول نافذة.
المعلمات
-
windowId
الرقم
-
queryOptions
QueryOptions اختياري
الإصدار 88 من Chrome أو الإصدارات الأحدث -
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(window: Window) => void
-
نافذة
-
المرتجعات
-
Promise<Window>
الإصدار 88 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window[]>
للحصول على جميع النوافذ
المعلمات
-
queryOptions
QueryOptions اختياري
الإصدار 88 من Chrome أو الإصدارات الأحدث -
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(windows: Window[]) => void
-
نوافذ
النافذة[]
-
المرتجعات
-
Promise<Window[]>
الإصدار 88 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
تحصل على النافذة الحالية.
المعلمات
-
queryOptions
QueryOptions اختياري
الإصدار 88 من Chrome أو الإصدارات الأحدث -
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(window: Window) => void
-
نافذة
-
المرتجعات
-
Promise<Window>
الإصدار 88 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
تسترجع هذه الطريقة النافذة التي تم التركيز عليها مؤخرًا، وهي عادةً النافذة "في الأعلى".
المعلمات
-
queryOptions
QueryOptions اختياري
الإصدار 88 من Chrome أو الإصدارات الأحدث -
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(window: Window) => void
-
نافذة
-
المرتجعات
-
Promise<Window>
الإصدار 88 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
remove()
chrome.windows.remove(
windowId: number,
callback?: function,
): Promise<void>
لإزالة (إغلاق) نافذة وجميع علامات التبويب بداخلها
المعلمات
-
windowId
الرقم
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
وعد<فراغ>
الإصدار 88 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
callback?: function,
): Promise<Window>
تعديل خصائص نافذة حدِّد فقط السمات التي تريد تغييرها، وستبقى السمات غير المحدّدة بدون تغيير.
المعلمات
-
windowId
الرقم
-
updateInfo
عنصر
-
drawAttention
قيمة منطقية اختيارية
إذا تم ضبط السياسة على
true، يتم عرض النافذة بطريقة تجذب انتباه المستخدم إليها، بدون تغيير النافذة التي يتم التركيز عليها. ويستمر التأثير إلى أن يغيّر المستخدم التركيز إلى النافذة. ولن يكون لهذا الخيار أي تأثير إذا كانت النافذة في المقدّمة. اضبط القيمة علىfalseلإلغاء طلبdrawAttentionسابق. -
مركّز
قيمة منطقية اختيارية
إذا كانت القيمة
true، يتم إحضار النافذة إلى المقدّمة، ولا يمكن دمجها مع الحالة "minimized" (تصغير). إذا كانت القيمةfalse، يتم إحضار النافذة التالية في ترتيب z إلى الأمام، ولا يمكن دمجها مع الحالة "ملء الشاشة" أو "مكبَّرة". -
الارتفاع
number اختيارية
الارتفاع المطلوب لتغيير حجم النافذة بالبكسل يتم تجاهل هذه القيمة في اللوحات.
-
لليسار
number اختيارية
تمثّل هذه السمة الإزاحة من الحافة اليسرى للشاشة لنقل النافذة إليها بالبكسل. يتم تجاهل هذه القيمة في اللوحات.
-
الولاية
WindowState اختياري
الحالة الجديدة للنافذة لا يمكن الجمع بين حالات "التصغير" و"التكبير" و"ملء الشاشة" مع "اليسار" أو "الأعلى" أو "العرض" أو "الارتفاع".
-
العلوية
number اختيارية
تمثّل هذه السمة الإزاحة من الحافة العلوية للشاشة لنقل النافذة إليها بالبكسل. يتم تجاهل هذه القيمة في اللوحات.
-
العرض
number اختيارية
العرض الذي سيتم تغيير حجم النافذة إليه بالبكسل يتم تجاهل هذه القيمة في اللوحات.
-
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(window: Window) => void
-
نافذة
-
المرتجعات
-
Promise<Window>
الإصدار 88 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
الفعاليات
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
يتم تشغيل هذا الحدث عند تغيير حجم نافذة، ولا يتم إرساله إلا عند تطبيق الحدود الجديدة، وليس عند إجراء تغييرات قيد التقدّم.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(window: Window) => void
-
نافذة
-
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
يتم تنشيط هذا الحدث عند إنشاء نافذة.
المعلمات
-
callback
دالة
الإصدار 46 من Chrome أو الإصدارات الأحدثتظهر المَعلمة
callbackعلى النحو التالي:(window: Window) => void
-
نافذة
تفاصيل النافذة التي تم إنشاؤها
-
-
الفلاتر
object اختياري
-
windowTypes
الشروط التي يجب أن يستوفيها نوع النافذة التي يتم إنشاؤها. ويستوفي تلقائيًا
['normal', 'popup'].
-
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
يتم تنشيط هذا الحدث عند تغيير النافذة التي يتم التركيز عليها حاليًا. تعرض القيمة chrome.windows.WINDOW_ID_NONE إذا فقدت جميع نوافذ Chrome التركيز. ملاحظة: في بعض برامج إدارة النوافذ في Linux، يتم دائمًا إرسال WINDOW_ID_NONE قبل التبديل من نافذة Chrome إلى أخرى مباشرةً.
المعلمات
-
callback
دالة
الإصدار 46 من Chrome أو الإصدارات الأحدثتظهر المَعلمة
callbackعلى النحو التالي:(windowId: number) => void
-
windowId
الرقم
رقم تعريف النافذة التي تم التركيز عليها حديثًا
-
-
الفلاتر
object اختياري
-
windowTypes
الشروط التي يجب أن يستوفيها نوع النافذة التي تتم إزالتها. ويستوفي تلقائيًا
['normal', 'popup'].
-
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
يتم تنشيط هذا الحدث عند إزالة نافذة (إغلاقها).
المعلمات
-
callback
دالة
الإصدار 46 من Chrome أو الإصدارات الأحدثتظهر المَعلمة
callbackعلى النحو التالي:(windowId: number) => void
-
windowId
الرقم
رقم تعريف النافذة التي تمت إزالتها
-
-
الفلاتر
object اختياري
-
windowTypes
الشروط التي يجب أن يستوفيها نوع النافذة التي تتم إزالتها. ويستوفي تلقائيًا
['normal', 'popup'].
-