refresh date: 2026-09-25 robots: noindex
الوصف
استخدِم واجهة برمجة التطبيقات chrome.devtools.inspectedWindow للتفاعل مع النافذة التي يتم فحصها: احصل على معرّف علامة التبويب للصفحة التي يتم فحصها، أو قيِّم الرمز في سياق النافذة التي يتم فحصها، أو أعِد تحميل الصفحة، أو احصل على قائمة الموارد داخل الصفحة.
البيان
يمكنك استخدام chrome.devtools.inspectedWindow للتفاعل مع النافذة التي يتم فحصها: الحصول على رقم تعريف علامة التبويب للصفحة التي يتم فحصها أو تقييم الرمز في سياق النافذة التي يتم فحصها أو إعادة تحميل الصفحة أو الحصول على قائمة الموارد داخل الصفحة.
يمكنك الاطّلاع على ملخّص واجهات برمجة التطبيقات في "أدوات مطوّري البرامج" للحصول على مقدمة عامة حول استخدام واجهات برمجة التطبيقات في "أدوات مطوّري البرامج".
نظرة عامة
توفّر السمة tabId معرّف علامة التبويب الذي يمكنك استخدامه مع طلبات بيانات chrome.tabs.* من واجهة برمجة التطبيقات. ومع ذلك، يُرجى ملاحظة أنّ واجهة برمجة التطبيقات chrome.tabs.* لا تظهر في صفحات إضافة "أدوات المطوّرين" لأسباب أمنية، لذا عليك تمرير رقم تعريف علامة التبويب إلى صفحة الخلفية واستدعاء وظائف واجهة برمجة التطبيقات chrome.tabs.* من هناك.
يمكن استخدام طريقة reload لإعادة تحميل الصفحة التي تم فحصها. بالإضافة إلى ذلك، يمكن للمتصل تحديد
تجاوز لسلسلة وكيل المستخدم، أو نص برمجي سيتم إدخاله مبكرًا عند تحميل الصفحة، أو
خيار لفرض إعادة تحميل الموارد المخزنة مؤقتًا.
استخدِم طلب getResources والحدث onResourceContent للحصول على قائمة الموارد (المستندات وأوراق الأنماط والنصوص البرمجية والصور وما إلى ذلك) ضمن الصفحة التي يتم فحصها. يمكن استخدام الطريقتَين getContent وsetContent من الفئة Resource مع الحدث onResourceContentCommitted لإتاحة تعديل محتوى المورد، على سبيل المثال، من خلال محرِّر خارجي.
تنفيذ الرمز البرمجي في النافذة التي يتم فحصها
تتيح طريقة eval للإضافات تنفيذ رمز JavaScript في سياق الصفحة التي يتم فحصها. هذه الطريقة فعالة عند استخدامها في السياق الصحيح وخطيرة عند استخدامها
بشكل غير لائق. استخدِم طريقة tabs.executeScript ما لم تكن بحاجة إلى الوظيفة المحدّدة التي توفّرها طريقة eval.
في ما يلي الاختلافات الرئيسية بين الطريقتَين eval وtabs.executeScript:
- لا تستخدم طريقة
evalبيئة معزولة للرمز الذي يتم تقييمه، لذا يمكن للرمز الوصول إلى حالة JavaScript للنافذة التي يتم فحصها. استخدِم هذه الطريقة عندما يكون الوصول إلى حالة JavaScript للصفحة التي يتم فحصها مطلوبًا. - يتضمّن سياق تنفيذ الرمز الذي يتم تقييمه واجهة برمجة التطبيقات لوحدة تحكّم "أدوات المطوّرين".
على سبيل المثال، يمكن أن يستخدم الرمز
inspectو$0. - قد يعرض الرمز الذي تم تقييمه قيمة يتم تمريرها إلى دالة الاستدعاء الخاصة بالإضافة. يجب أن تكون القيمة المعروضة عنصر JSON صالحًا (قد تحتوي فقط على أنواع JavaScript أساسية ومراجع غير دورية إلى عناصر JSON أخرى). يُرجى توخي الحذر الشديد أثناء معالجة البيانات التي يتم تلقّيها من الصفحة التي يتم فحصها، حيث يتم التحكّم في سياق التنفيذ بشكل أساسي من خلال الصفحة التي يتم فحصها، وقد تؤثر الصفحة الضارة في البيانات التي يتم عرضها على الإضافة.
يُرجى العِلم أنّ الصفحة يمكن أن تتضمّن سياقات تنفيذ JavaScript متعددة ومختلفة. ويكون لكل إطار سياقه الخاص، بالإضافة إلى سياق إضافي لكل إضافة تحتوي على نصوص برمجية للمحتوى يتم تشغيلها في هذا الإطار.
يتم تنفيذ طريقة eval تلقائيًا في سياق الإطار الرئيسي للصفحة التي يتم فحصها.
تأخذ الطريقة eval وسيطة ثانية اختيارية يمكنك استخدامها لتحديد السياق الذي يتم فيه تقييم الرمز. يمكن أن يحتوي عنصر options هذا على مفتاح واحد أو أكثر من المفاتيح التالية:
frameURL- يُستخدَم لتحديد إطار غير الإطار الرئيسي للصفحة التي يتم فحصها.
contextSecurityOrigin- يُستخدَم لاختيار سياق ضمن الإطار المحدّد وفقًا لعنوان الويب المصدر.
useContentScriptContext- في حال ضبط هذه السمة على "صحيح"، يتم تنفيذ النص البرمجي في السياق نفسه الذي يتم فيه تنفيذ نصوص المحتوى البرمجية للإضافة. (يعادل ذلك تحديد مصدر الويب الخاص بالإضافة كمصدر أمان السياق). ويمكن استخدام ذلك لتبادل البيانات مع النص البرمجي للمحتوى.
أمثلة
يتحقّق الرمز التالي من إصدار jQuery الذي تستخدمه الصفحة التي يتم فحصها:
chrome.devtools.inspectedWindow.eval(
"jQuery.fn.jquery",
function(result, isException) {
if (isException) {
console.log("the page is not using jQuery");
} else {
console.log("The page is using jQuery v" + result);
}
}
);
لتجربة واجهة برمجة التطبيقات هذه، يمكنك تثبيت أمثلة على واجهة برمجة التطبيقات لأدوات مطوّري البرامج من مستودع chrome-extension-samples.
الأنواع
Resource
مورد ضمن الصفحة التي تم فحصها، مثل مستند أو نص برمجي أو صورة.
الخصائص
-
url
سلسلة
عنوان URL للمرجع
-
getContent
void
Promiseللحصول على محتوى المرجع
تبدو الدالة
getContentعلى النحو التالي:(callback?: function) => {...}
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(response: object) => void
-
رد
عنصر
الإصدار 151 من Chrome والإصدارات الأحدثعنصر يحتوي على محتوى المورد وترميزه.
-
المحتوى
سلسلة
محتوى المورد (قد يكون مشفّرًا)
-
الترميز
سلسلة
يكون هذا الحقل فارغًا إذا لم يتم ترميز المحتوى، وإلا سيظهر اسم الترميز. في الوقت الحالي، يتوفّر base64 فقط.
-
-
-
returns
وعد<كائن>
الإصدار 151 من Chrome والإصدارات الأحدثدالة تتلقّى محتوى المورد عند اكتمال الطلب
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
-
-
setContent
void
Promiseلضبط محتوى المرجع
تبدو الدالة
setContentعلى النحو التالي:(content: string, commit: boolean, callback?: function) => {...}
-
المحتوى
سلسلة
المحتوى الجديد للمرجع لا تتوفّر حاليًا سوى المراجع من النوع النصي.
-
الإتمام
قيمة منطقية
تكون القيمة "صحيح" إذا انتهى المستخدم من تعديل المرجع، ويجب الاحتفاظ بالمحتوى الجديد للمرجع، وتكون القيمة "خطأ" إذا كان هذا تغييرًا بسيطًا تم إرساله أثناء تعديل المستخدم للمرجع.
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(error?: object) => void
-
خطأ
object اختياري
يتم ضبطها على "غير محدّد" إذا تم ضبط محتوى المورد بنجاح، وإلا يتم وصف الخطأ.
-
-
returns
وعد<كائن>
الإصدار 151 من Chrome والإصدارات الأحدثدالة يتم استدعاؤها عند اكتمال الطلب.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
-
الخصائص
tabId
رقم تعريف علامة التبويب التي يتم فحصها يمكن استخدام هذا المعرّف مع chrome.tabs.* واجهة برمجة التطبيقات
النوع
الرقم
الطُرق
eval()
chrome.devtools.inspectedWindow.eval(
expression: string,
options?: object,
callback?: function,
): Promise<object>
يقيّم تعبير JavaScript في سياق الإطار الرئيسي للصفحة التي يتم فحصها. يجب أن يتم تقييم التعبير إلى عنصر متوافق مع JSON، وإلا سيتم طرح استثناء. يمكن أن تُبلغ دالة eval عن خطأ في DevTools أو استثناء JavaScript يحدث أثناء التقييم. وفي كلتا الحالتين، تكون مَعلمة result لدالة رد الاتصال هي undefined. في حال حدوث خطأ من جانب "أدوات مطوّري البرامج"، تكون المَعلمة isException غير فارغة ويتم ضبط isError على "صحيح" وcode على رمز خطأ. في حال حدوث خطأ في JavaScript، يتم ضبط isException على "صحيح" ويتم ضبط value على قيمة السلسلة للعنصر الذي تم طرحه.
المعلمات
-
تعبير
سلسلة
تعبير لتقييمه
-
الخيارات
object اختياري
يمكن أن تحتوي مَعلمة الخيارات على خيار واحد أو أكثر.
-
frameURL
string اختياري
في حال تحديد هذا الخيار، يتم تقييم التعبير على إطار iframe الذي يتطابق عنوان URL الخاص به مع العنوان المحدّد. يتم تقييم التعبير تلقائيًا في الإطار العلوي من الصفحة التي يتم فحصها.
-
scriptExecutionContext
string اختياري
الإصدار 107 من Chrome والإصدارات الأحدثتقييم التعبير في سياق نص برمجي للمحتوى لإضافة تتطابق مع المصدر المحدّد في حال توفّر scriptExecutionContext، يتم إلغاء الإعداد "صحيح" في useContentScriptContext.
-
useContentScriptContext
قيمة منطقية اختيارية
تقييم التعبير في سياق النص البرمجي للمحتوى الخاص بالإضافة التي يتم طلبها، بشرط أن يكون النص البرمجي للمحتوى قد تم إدخاله في الصفحة التي يتم فحصها. وإذا لم يكن الأمر كذلك، لن يتم تقييم التعبير وسيتم استدعاء دالة الاستدعاء مع ضبط مَعلمة الاستثناء على عنصر يحتوي على الحقل
isErrorمضبوطًا على "صحيح" والحقلcodeمضبوطًا علىE_NOTFOUND.
-
-
callback
function اختياري
تظهر المَعلمة
callbackعلى النحو التالي:(response: object) => void
-
رد
عنصر
الإصدار 151 من Chrome والإصدارات الأحدثنتيجة التقييم ومعلومات الاستثناء
-
exceptionInfo
عنصر
تمثّل هذه السمة تفاصيل في حال حدوث استثناء أثناء تقييم التعبير.
-
رمز
سلسلة
يتم ضبط هذه السمة في حال حدوث الخطأ في "أدوات مطوري البرامج" قبل تقييم التعبير.
-
الوصف
سلسلة
يتم ضبط هذه السمة في حال حدوث الخطأ في "أدوات مطوري البرامج" قبل تقييم التعبير.
-
التفاصيل
any[]
يتم ضبط هذه السمة في حال حدوث الخطأ في DevTools قبل تقييم التعبير، وتحتوي على مصفوفة القيم التي يمكن استبدالها في سلسلة الوصف لتقديم مزيد من المعلومات حول سبب الخطأ.
-
isError
قيمة منطقية
يتم ضبط هذه السمة في حال حدوث الخطأ في "أدوات مطوري البرامج" قبل تقييم التعبير.
-
isException
قيمة منطقية
يتم ضبط هذه السمة إذا كان الرمز الذي تم تقييمه ينتج عنه استثناء غير معالَج.
-
القيمة
سلسلة
يتم ضبط هذه السمة إذا كان الرمز الذي تم تقييمه ينتج عنه استثناء لم تتم معالجته.
-
-
نتيجة
عنصر
نتيجة التقييم
-
-
المرتجعات
-
وعد<كائن>
الإصدار 151 من Chrome والإصدارات الأحدثدالة يتم استدعاؤها عند اكتمال التقييم.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
getResources()
chrome.devtools.inspectedWindow.getResources(
callback?: function,
): Promise<Resource[]>
تسترد هذه الطريقة قائمة الموارد من الصفحة التي تم فحصها.
المعلمات
المرتجعات
-
Promise<Resource[]>
الإصدار 151 من Chrome والإصدارات الأحدثدالة تتلقّى قائمة الموارد عند اكتمال الطلب
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج المنصات الأخرى إلى استخدام عمليات الاستدعاء.
reload()
chrome.devtools.inspectedWindow.reload(
reloadOptions?: object,
): void
لإعادة تحميل الصفحة التي يتم فحصها
المعلمات
-
reloadOptions
object اختياري
-
ignoreCache
قيمة منطقية اختيارية
عندما تكون القيمة "صحيح"، سيتجاوز المُحمِّل ذاكرة التخزين المؤقت لجميع موارد الصفحة التي تم فحصها والتي تم تحميلها قبل بدء الحدث
load. ويشبه هذا التأثير الضغط على Ctrl+Shift+R في النافذة التي يتم فحصها أو ضمن نافذة "أدوات المطوّرين". -
injectedScript
string اختياري
في حال تحديد هذا الخيار، سيتم إدخال النص البرمجي في كل إطار من الصفحة التي يتم فحصها فور تحميلها، قبل أي من النصوص البرمجية للإطار. ولن يتم إدخال النص البرمجي بعد عمليات إعادة التحميل اللاحقة، على سبيل المثال، إذا ضغط المستخدم على Ctrl+R.
-
userAgent
string اختياري
في حال تحديد السلسلة، سيتم تجاهل قيمة عنوان HTTP
User-Agentالذي يتم إرساله أثناء تحميل موارد الصفحة التي يتم فحصها. ستلغي السلسلة أيضًا قيمة السمةnavigator.userAgentالتي يتم عرضها لأي نصوص برمجية قيد التشغيل ضمن الصفحة التي يتم فحصها.
-
الفعاليات
onResourceAdded
chrome.devtools.inspectedWindow.onResourceAdded.addListener(
callback: function,
)
يتم تنشيطه عند إضافة مورد جديد إلى الصفحة التي يتم فحصها.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(resource: Resource) => void
-
المصدر
-
onResourceContentCommitted
chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
callback: function,
)
يتم تنشيط هذا الحدث عند تنفيذ نسخة جديدة من المورد (على سبيل المثال، يحفظ المستخدم نسخة معدَّلة من المورد في "أدوات المطوّرين").