المتصفح (مُدار بواسطة openclaw)
يمكن لـ OpenClaw تشغيل ملف تعريف مخصّص لمتصفّحات Chrome/Brave/Edge/Chromium يتحكّم به الوكيل. وهو معزول عن متصفحك الشخصي ويُدار عبر خدمة تحكّم محلية صغيرة داخل Gateway (حلقة محلية فقط). عرض للمبتدئين:- اعتبره متصفحًا منفصلًا مخصّصًا للوكيل فقط.
- ملف التعريف
openclawلا يمسّ ملف تعريف متصفحك الشخصي. - يمكن للوكيل فتح علامات تبويب وقراءة الصفحات والنقر والكتابة ضمن مسار آمن.
- يستخدم ملف التعريف الافتراضي
chromeمتصفح Chromium الافتراضي للنظام عبر مرحّل الامتداد؛ بدّل إلىopenclawلاستخدام المتصفح المُدار المعزول.
ما الذي تحصل عليه
- ملف تعريف متصفح منفصل باسم openclaw (بلمسة لونية برتقالية افتراضيًا).
- تحكّم حتمي في علامات التبويب (سرد/فتح/تركيز/إغلاق).
- إجراءات الوكيل (نقر/كتابة/سحب/تحديد)، لقطات، لقطات شاشة، ملفات PDF.
- دعم اختياري لملفات تعريف متعددة (
openclaw،work،remote، …).
البدء السريع
ملفات التعريف: openclaw مقابل chrome
openclaw: متصفح مُدار ومعزول (لا يتطلب امتدادًا).chrome: مرحّل امتداد إلى متصفح النظام (يتطلب إرفاق امتداد OpenClaw بعلامة تبويب).
browser.defaultProfile: "openclaw" إذا كنت تريد وضع الإدارة افتراضيًا.
التهيئة
توجد إعدادات المتصفح في~/.openclaw/openclaw.json.
- ترتبط خدمة تحكّم المتصفح بحلقة محلية على منفذ مشتق من
gateway.port(الافتراضي:18791، وهو gateway + 2). يستخدم المرحّل المنفذ التالي (18792). - إذا تجاوزت منفذ Gateway (
gateway.portأوOPENCLAW_GATEWAY_PORT)، فإن منافذ المتصفح المشتقة تتحرك للحفاظ على نفس «العائلة». - افتراضيًا، يكون
cdpUrlهو منفذ المرحّل عند عدم تعيينه. - ينطبق
remoteCdpTimeoutMsعلى فحوصات قابلية الوصول إلى CDP عن بُعد (غير حلقة محلية). - ينطبق
remoteCdpHandshakeTimeoutMsعلى فحوصات قابلية الوصول إلى WebSocket الخاص بـ CDP عن بُعد. - يعني
attachOnly: true«عدم إطلاق متصفح محلي أبدًا؛ الإرفاق فقط إذا كان يعمل بالفعل». - يقوم
color+colorلكل ملف تعريف بتلوين واجهة المتصفح لتوضيح أي ملف تعريف نشط. - ملف التعريف الافتراضي هو
chrome(مرحّل الامتداد). استخدمdefaultProfile: "openclaw"للمتصفح المُدار. - ترتيب الاكتشاف التلقائي: متصفح النظام الافتراضي إذا كان قائمًا على Chromium؛ وإلا فـ Chrome → Brave → Edge → Chromium → Chrome Canary.
- تقوم ملفات تعريف
openclawالمحلية بتعيينcdpPort/cdpUrlتلقائيًا — عيّنها فقط لـ CDP البعيد.
استخدام Brave (أو متصفح آخر قائم على Chromium)
إذا كان متصفح النظام الافتراضي قائمًا على Chromium (Chrome/Brave/Edge/etc)، فسيستخدمه OpenClaw تلقائيًا. عيّنbrowser.executablePath لتجاوز
الاكتشاف التلقائي:
مثال CLI:
وحدة التحكم المحلية مقابل عن بعد
- التحكّم المحلي (الافتراضي): يقوم Gateway ببدء خدمة التحكّم بالحَلْقة المحلية ويمكنه إطلاق متصفح محلي.
- التحكّم البعيد (مضيف عُقدة): شغّل مضيف عُقدة على الجهاز الذي يحتوي المتصفح؛ يقوم Gateway بتمرير إجراءات المتصفح إليه.
- CDP بعيد: عيّن
browser.profiles.<name>.cdpUrl(أوbrowser.cdpUrl) لـ الإرفاق بمتصفح قائم على Chromium عن بُعد. في هذه الحالة، لن يقوم OpenClaw بإطلاق متصفح محلي.
- رموز الاستعلام (مثل
https://provider.example?token=<token>) - مصادقة HTTP Basic (مثل
https://user:[email protected])
/json/* وعند الاتصال
بـ WebSocket الخاص بـ CDP. يُفضّل استخدام متغيرات البيئة أو مديري الأسرار
للرموز بدلًا من تضمينها في ملفات التهيئة.
وكيل متصفح العُقدة (افتراضي بلا تهيئة)
إذا شغّلت مضيف عُقدة على الجهاز الذي يحتوي متصفحك، يمكن لـ OpenClaw توجيه استدعاءات أدوات المتصفح تلقائيًا إلى تلك العُقدة دون أي تهيئة إضافية للمتصفح. هذا هو المسار الافتراضي لـ Gateways البعيدة. ملاحظات:- يكشف مضيف العُقدة عن خادم تحكّم المتصفح المحلي عبر أمر وكيل.
- تأتي ملفات التعريف من تهيئة
browser.profilesالخاصة بالعُقدة (مثل المحلي). - عطّله إذا لم تكن تريده:
- على العُقدة:
nodeHost.browserProxy.enabled=false - على Gateway:
gateway.nodes.browser.mode="off"
- على العُقدة:
Browserless (CDP بعيد مُستضاف)
توفّر Browserless خدمة Chromium مُستضافة تكشف نقاط نهاية CDP عبر HTTPS. يمكنك توجيه ملف تعريف متصفح OpenClaw إلى نقطة نهاية إقليمية لـ Browserless والمصادقة باستخدام مفتاح API الخاص بك. مثال:- استبدل
<BROWSERLESS_API_KEY>برمز Browserless الحقيقي الخاص بك. - اختر نقطة النهاية الإقليمية التي تطابق حساب Browserless لديك (انظر مستنداتهم).
الأمان
أفكار أساسية:- تحكّم المتصفح مقتصر على الحلقة المحلية؛ يمر الوصول عبر مصادقة Gateway أو اقتران العُقدة.
- إذا تم تمكين التحكم في المتصفح ولم يتم تكوين المصادقة، يقوم OpenClaw بإنشاء
gateway.auth.tokenتلقائيًا عند بدء التشغيل وحفظه في الإعدادات. - أبقِ Gateway وأي مضيفي عُقدة على شبكة خاصة (Tailscale)؛ وتجنب التعريض العام.
- تعامل مع عناوين URL/رموز CDP البعيدة كأسرار؛ وفضّل متغيرات البيئة أو مدير أسرار.
- فضّل نقاط نهاية HTTPS والرموز قصيرة العمر حيثما أمكن.
- تجنب تضمين رموز طويلة العمر مباشرة في ملفات التهيئة.
ملفات التعريف (متعدد المتصفحات)
يدعم OpenClaw عدة ملفات تعريف مسمّاة (تهيئات توجيه). يمكن أن تكون ملفات التعريف:- openclaw-managed: مثيل متصفح قائم على Chromium مخصّص مع دليل بيانات مستخدم خاص + منفذ CDP
- remote: عنوان URL صريح لـ CDP (متصفح قائم على Chromium يعمل في مكان آخر)
- extension relay: علامات تبويب Chrome الحالية لديك عبر المرحّل المحلي + امتداد Chrome
- يتم إنشاء ملف التعريف
openclawتلقائيًا إذا كان مفقودًا. - ملف التعريف
chromeمدمج لمرحّل امتداد Chrome (يشير إلىhttp://127.0.0.1:18792افتراضيًا). - يتم تخصيص منافذ CDP المحلية من 18800–18899 افتراضيًا.
- يؤدي حذف ملف تعريف إلى نقل دليل بياناته المحلي إلى سلة المهملات.
?profile=<name>؛ ويستخدم CLI --browser-profile.
مرحّل امتداد Chrome (استخدم Chrome الحالي لديك)
يمكن لـ OpenClaw أيضًا قيادة علامات تبويب Chrome الحالية لديك (دون مثيل Chrome «openclaw» منفصل) عبر مرحّل CDP محلي + امتداد Chrome. الدليل الكامل: امتداد Chrome التدفّق:- يعمل Gateway محليًا (على نفس الجهاز) أو يعمل مضيف عُقدة على جهاز المتصفح.
- يستمع خادم مرحّل محلي عند حلقة محلية
cdpUrl(الافتراضي:http://127.0.0.1:18792). - تنقر أيقونة امتداد OpenClaw Browser Relay على علامة تبويب للإرفاق (لا يتم الإرفاق تلقائيًا).
- يتحكّم الوكيل بتلك العلامة عبر أداة
browserالمعتادة، باختيار ملف التعريف الصحيح.
جلسات sandboxed
إذا كانت جلسة الوكيل sandboxed، فقد تُعيَّن أداةbrowser افتراضيًا إلى target="sandbox" (متصفح sandbox).
يتطلب الاستيلاء عبر مرحّل امتداد Chrome تحكّمًا في متصفح المضيف، لذا إمّا:
- تشغيل الجلسة بدون sandbox، أو
- تعيين
agents.defaults.sandbox.browser.allowHostControl: trueواستخدامtarget="host"عند استدعاء الأداة.
الإعداد
- تحميل الامتداد (تطوير/غير مُعبّأ):
- Chrome →
chrome://extensions→ تمكين «وضع المطوّر» - «Load unpacked» → اختر الدليل الذي يطبعه
openclaw browser extension path - ثبّت الامتداد، ثم انقره على علامة التبويب التي تريد التحكّم بها (تُظهر الشارة
ON).
- الاستخدام:
- CLI:
openclaw browser --browser-profile chrome tabs - أداة الوكيل:
browserمعprofile="chrome"
- يعتمد هذا الوضع على Playwright-on-CDP لمعظم العمليات (لقطات شاشة/لقطات/إجراءات).
- افصل الإرفاق بالنقر على أيقونة الامتداد مرة أخرى.
ضمانات العزل
- دليل بيانات مستخدم مخصّص: لا يلمس ملف تعريف متصفحك الشخصي.
- منافذ مخصّصة: تتجنب
9222لمنع التعارض مع سير عمل التطوير. - تحكّم حتمي في علامات التبويب: استهداف علامات التبويب عبر
targetId، وليس «آخر علامة».
اختيار المتصفح
عند الإطلاق محليًا، يختار OpenClaw أول متاح:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
المنصّات:
- macOS: يتحقق من
/Applicationsو~/Applications. - Linux: يبحث عن
google-chrome،brave،microsoft-edge،chromium، إلخ. - Windows: يتحقق من مواقع التثبيت الشائعة.
تحكم API (اختياري)
للتكاملات المحلية فقط، يوفّر Gateway واجهة HTTP صغيرة على الحلقة المحلية:- الحالة/البدء/الإيقاف:
GET /،POST /start،POST /stop - علامات التبويب:
GET /tabs،POST /tabs/open،POST /tabs/focus،DELETE /tabs/:targetId - لقطة/لقطة شاشة:
GET /snapshot،POST /screenshot - إجراءات:
POST /navigate،POST /act - Hooks:
POST /hooks/file-chooser،POST /hooks/dialog - التنزيلات:
POST /download،POST /wait/download - تصحيح:
GET /console،POST /pdf - تصحيح:
GET /errors،GET /requests،POST /trace/start،POST /trace/stop،POST /highlight - الشبكة:
POST /response/body - الحالة:
GET /cookies،POST /cookies/set،POST /cookies/clear - الحالة:
GET /storage/:kind،POST /storage/:kind/set،POST /storage/:kind/clear - الإعدادات:
POST /set/offline،POST /set/headers،POST /set/credentials،POST /set/geolocation،POST /set/media،POST /set/timezone،POST /set/locale،POST /set/device
?profile=<name>.
إذا تمت تهيئة مصادقة gateway، فإن مسارات HTTP الخاصة بالمتصفح تتطلب المصادقة أيضًا:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>أو مصادقة HTTP Basic باستخدام كلمة المرور تلك
متطلب Playwright
تتطلب بعض الميزات (التنقّل/الإجراء/لقطة AI/لقطة الدور، لقطات عناصر، PDF) Playwright. إذا لم يكن Playwright مثبتًا، فستعيد تلك النقاط خطأ 501 واضحًا. تظل لقطات ARIA ولقطات الشاشة الأساسية تعمل لـ Chrome المُدار بواسطة openclaw. وبالنسبة لمشغّل مرحّل امتداد Chrome، تتطلب لقطات ARIA ولقطات الشاشة Playwright. إذا رأيتPlaywright is not available in this gateway build، فقم بتثبيت
حزمة Playwright الكاملة (وليس playwright-core) وأعد تشغيل gateway، أو أعد تثبيت
OpenClaw مع دعم المتصفح.
تثبيت Playwright في Docker
إذا كان Gateway يعمل داخل Docker، فتجنبnpx playwright (تعارضات تجاوز npm).
استخدم CLI المضمّن بدلًا من ذلك:
PLAYWRIGHT_BROWSERS_PATH (على سبيل المثال،
/home/node/.cache/ms-playwright) وتأكد من أن /home/node محفوظ عبر
OPENCLAW_HOME_VOLUME أو ربط مجلّد. انظر Docker.
كيف يعمل (داخليًا)
التدفّق عالي المستوى:- يقبل خادم تحكّم صغير طلبات HTTP.
- يتصل بمتصفحات قائمة على Chromium (Chrome/Brave/Edge/Chromium) عبر CDP.
- للإجراءات المتقدمة (نقر/كتابة/لقطة/PDF)، يستخدم Playwright فوق CDP.
- عند غياب Playwright، تتوفر فقط العمليات غير المعتمدة على Playwright.
مرجع CLI السريع
تقبل جميع الأوامر--browser-profile <name> لاستهداف ملف تعريف محدد.
كما تقبل جميع الأوامر --json لإخراج قابل للقراءة آليًا (حِزم ثابتة).
الأساسيات:
openclaw browser statusopenclaw browser startopenclaw browser stopopenclaw browser tabsopenclaw browser tabopenclaw browser tab newopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://example.comopenclaw browser focus abcd1234openclaw browser close abcd1234
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref 12openclaw browser screenshot --ref e12openclaw browser snapshotopenclaw browser snapshot --format aria --limit 200openclaw browser snapshot --interactive --compact --depth 6openclaw browser snapshot --efficientopenclaw browser snapshot --labelsopenclaw browser snapshot --selector "#main" --interactiveopenclaw browser snapshot --frame "iframe#main" --interactiveopenclaw browser console --level erroropenclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000
openclaw browser navigate https://example.comopenclaw browser resize 1280 720openclaw browser click 12 --doubleopenclaw browser click e12 --doubleopenclaw browser type 23 "hello" --submitopenclaw browser press Enteropenclaw browser hover 44openclaw browser scrollintoview e12openclaw browser drag 10 11openclaw browser select 9 OptionA OptionBopenclaw browser download e12 /tmp/report.pdfopenclaw browser waitfordownload /tmp/report.pdfopenclaw browser upload /tmp/file.pdfopenclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'openclaw browser dialog --acceptopenclaw browser wait --text "Done"openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"openclaw browser evaluate --fn '(el) => el.textContent' --ref 7openclaw browser highlight e12openclaw browser trace startopenclaw browser trace stop
openclaw browser cookiesopenclaw browser cookies set session abc123 --url "https://example.com"openclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set theme darkopenclaw browser storage session clearopenclaw browser set offline onopenclaw browser set headers --json '{"X-Debug":"1"}'openclaw browser set credentials user passopenclaw browser set credentials --clearopenclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"openclaw browser set geo --clearopenclaw browser set media darkopenclaw browser set timezone America/New_Yorkopenclaw browser set locale en-USopenclaw browser set device "iPhone 14"
uploadوdialogهما استدعاءات تسليح؛ شغّلهما قبل النقر/الضغط الذي يطلق أداة الاختيار/الحوار.- تقتصر مسارات التنزيل ومخرجات التتبع على مجلدات OpenClaw المؤقتة:
- تصحيح مسار العمل
- التنزيلات:
/tmp/openclaw/downloads(بديل:${os.tmpdir()}/openclaw/downloads)
- تقتصر مسارات الرفع على مجلد الرفع المؤقت الخاص بـ OpenClaw:
- الملفات المرفوعة:
/tmp/openclaw/uploads(بديل:${os.tmpdir()}/openclaw/uploads)
- الملفات المرفوعة:
- يمكن لـ
uploadأيضًا تعيين مدخلات الملفات مباشرة عبر--input-refأو--element. snapshot:--format ai(الافتراضي عند تثبيت Playwright): يعيد لقطة AI مع مراجع رقمية (aria-ref="<n>").--format aria: يعيد شجرة إمكانية الوصول (بدون مراجع؛ للفحص فقط).--efficient(أو--mode efficient): إعداد لقطة دور مدمجة (تفاعلية + مدمجة + عمق + حد أقصى أقل لـ maxChars).- الافتراضي في التهيئة (للأداة/CLI فقط): عيّن
browser.snapshotDefaults.mode: "efficient"لاستخدام لقطات فعّالة عندما لا يمرّر المستدعي وضعًا (انظر تهيئة Gateway). - خيارات لقطة الدور (
--interactive،--compact،--depth،--selector) تفرض لقطة قائمة على الدور مع مراجع مثلref=e12. - يحدّد
--frame "<iframe selector>"نطاق لقطات الدور إلى iframe (يتزاوج مع مراجع الدور مثلe12). - ينتج
--interactiveقائمة مسطّحة سهلة الاختيار للعناصر التفاعلية (الأفضل لقيادة الإجراءات). - يضيف
--labelsلقطة شاشة للمنفذ المرئي فقط مع تسميات مراجع متراكبة (يطبعMEDIA:<path>).
- تتطلب
click/type/إلخ وجودrefمنsnapshot(إما رقمية12أو مرجع دورe12). لا يتم دعم محددات CSS للإجراءات عمدًا.
اللقطات والمراجع
يدعم OpenClaw نمطين من «اللقطات»:-
لقطة AI (مراجع رقمية):
openclaw browser snapshot(الافتراضي؛--format ai)- المخرجات: لقطة نصية تتضمن مراجع رقمية.
- الإجراءات:
openclaw browser click 12،openclaw browser type 23 "hello". - داخليًا، يُحل المرجع عبر
aria-refالخاص بـ Playwright.
-
لقطة الدور (مراجع دور مثل
e12):openclaw browser snapshot --interactive(أو--compact،--depth،--selector،--frame)- المخرجات: قائمة/شجرة قائمة على الدور مع
[ref=e12](واختياريًا[nth=1]). - الإجراءات:
openclaw browser click e12،openclaw browser highlight e12. - داخليًا، يُحل المرجع عبر
getByRole(...)(بالإضافة إلىnth()للتكرارات). - أضف
--labelsلتضمين لقطة شاشة للمنفذ المرئي مع تسمياتe12متراكبة.
- المخرجات: قائمة/شجرة قائمة على الدور مع
- المراجع غير مستقرة عبر عمليات التنقّل؛ إذا فشل شيء، أعد تشغيل
snapshotواستخدم مرجعًا جديدًا. - إذا أُخذت لقطة الدور مع
--frame، فستكون مراجع الدور ضمن نطاق ذلك iframe حتى لقطة الدور التالية.
انتظر الطاقة
يمكنك الانتظار لأكثر من الوقت/النص:- الانتظار لعنوان URL (يدعم الأنماط الشاملة بواسطة Playwright):
openclaw browser wait --url "**/dash"
- الانتظار لحالة التحميل:
openclaw browser wait --load networkidle
- الانتظار لشرط JavaScript:
openclaw browser wait --fn "window.ready===true"
- الانتظار لظهور محدد:
openclaw browser wait "#main"
تصحيح مسار العمل
عندما يفشل إجراء (مثل «غير مرئي»، «انتهاك الوضع الصارم»، «مغطّى»):openclaw browser snapshot --interactive- استخدم
click <ref>/type <ref>(فضّل مراجع الدور في الوضع التفاعلي) - إذا استمر الفشل:
openclaw browser highlight <ref>لمعرفة ما يستهدفه Playwright - إذا تصرفت الصفحة بغرابة:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- لتصحيح الأخطاء العميقة: تسجيل التتبع:
openclaw browser trace start- أعد إنتاج المشكلة
openclaw browser trace stop(يطبعTRACE:<path>)
إخراج JSON
--json مخصّص للبرمجة والأدوات المهيكلة.
أمثلة:
refs بالإضافة إلى كتلة stats صغيرة (أسطر/محارف/مراجع/تفاعلية) حتى تتمكن الأدوات من تقدير حجم وكثافة الحمولة.
مفاتيح الحالة والبيئة
تفيد هذه في سير عمل «اجعل الموقع يتصرف مثل X»:- ملفات تعريف الارتباط:
cookies،cookies set،cookies clear - التخزين:
storage local|session get|set|clear - دون اتصال:
set offline on|off - الرؤوس:
set headers --json '{"X-Debug":"1"}'(أو--clear) - مصادقة HTTP basic:
set credentials user pass(أو--clear) - تحديد الموقع الجغرافي:
set geo <lat> <lon> --origin "https://example.com"(أو--clear) - الوسائط:
set media dark|light|no-preference|none - المنطقة الزمنية / اللغة:
set timezone ...،set locale ... - الجهاز / المنفذ المرئي:
set device "iPhone 14"(إعدادات أجهزة Playwright)set viewport 1280 720
الأمان والخصوصية
- قد يحتوي ملف تعريف متصفح openclaw على جلسات مسجّلة الدخول؛ تعامل معه بحساسية.
- تنفّذ
browser act kind=evaluate/openclaw browser evaluateوwait --fnتعليمات JavaScript عشوائية في سياق الصفحة. يمكن لحقن المطالبات توجيه ذلك. عطّله باستخدامbrowser.evaluateEnabled=falseإذا لم تكن بحاجة إليه. - لملاحظات تسجيل الدخول ومكافحة الروبوتات (X/Twitter، إلخ)، راجع تسجيل الدخول للمتصفح + النشر على X/Twitter.
- أبقِ Gateway/مضيف العُقدة خاصًا (حلقة محلية أو شبكة tailnet فقط).
- نقاط نهاية CDP البعيدة قوية؛ قم بتمريرها عبر نفق وحمايتها.
استكشاف الأخطاء وإصلاحها
للمشكلات الخاصة بـ Linux (خصوصًا Chromium بنظام snap)، راجع استكشاف أخطاء المتصفح وإصلاحها.أدوات الوكيل + كيفية عمل التحكّم
يحصل الوكيل على أداة واحدة لأتمتة المتصفح:browser— الحالة/البدء/الإيقاف/علامات التبويب/فتح/تركيز/إغلاق/لقطة/لقطة شاشة/تنقّل/إجراء
- يعيد
browser snapshotشجرة واجهة مستخدم مستقرة (AI أو ARIA). - يستخدم
browser actمعرفات اللقطةrefللنقر/الكتابة/السحب/التحديد. - يلتقط
browser screenshotالبكسلات (الصفحة كاملة أو عنصر). - يقبل
browser:profileلاختيار ملف تعريف متصفح مسمّى (openclaw أو chrome أو CDP بعيد).target(sandbox|host|node) لتحديد مكان المتصفح.- في الجلسات sandboxed، يتطلب
target: "host"وجودagents.defaults.sandbox.browser.allowHostControl=true. - إذا تم حذف
target: تُعيَّن الجلسات sandboxed افتراضيًا إلىsandbox، بينما تُعيَّن الجلسات غير sandbox افتراضيًا إلىhost. - إذا كان متصلًا مضيف عُقدة قادر على المتصفح، فقد تُوجَّه الأداة تلقائيًا إليه ما لم تثبّت
target="host"أوtarget="node".