Social Browserبروفايلات والذكاء الاصطناعي والأتمتة

User Scripts · تعلّم عبر تعديل صفحات حقيقية

اجعل المواقع تعمل بالطريقة التي تناسبك أكثر.

User Script عبارة عن جزء صغير من التعليمات البرمجية التي يتم تشغيلها داخل صفحات الويب المطابقة. ابدأ ببضعة أسطر، وقم بإجراء تغيير واحد مفيد، ثم تعلم JavaScript فقط حسب حاجتك إليه.

مناسب للمبتدئينتطبيق عملي في كل درسJavaScript وCSS وHTMLمدمج داخل Social Browserيعمل مع أتمتة الذكاء الاصطناعي
لم تكتب سكربت من قبل؟ابدأ بالدرس 1. نشرح لك الحد الأدنى من JavaScript الذي تحتاجه.
تستخدم بالفعل سكربتات شبيهة بـTampermonkey؟انتقل إلى البيانات التعريفية والمطابقة والنطاق وSocial Browser بروفايلات.
تريد Workflows كاملة؟استخدم User Scripts بجانب Automation Studio وWorkflows يقودها الذكاء الاصطناعي عبر MCP AI.

أمثلة تعمل

انسخ سكربتًا صغيرًا وشاهد الصفحة تتغير.

ابدأ بتحسينات الصفحة غير الضارة. كل مثال صغير عن عمد حتى تتمكن من فهم كل سطر قبل استخدامه.

تعلّم كيفية إنشاء سكربت ←
كاتب · JavaScript

تسليط الضوء على قيمة مهمة

ابحث عن عنصر واحد واجعل ملاحظته أسهل.

مثال
const total = document.querySelector('.total');if (total) { total.style.background = '#fff3a6'; total.style.fontWeight = '700';}

استخدامه ل: لوحات المعلومات أو الإجماليات أو تسميات الحالة أو صفحات ضمان الجودة التي تتحكم فيها.

تعلم JavaScript
كاتب · CSS

إخفاء الشريط الجانبي المشتت للانتباه

في بعض الأحيان تكون قاعدة CSS هي كل ما تحتاجه.

مثال CSS
.promo-sidebar { display: none !important;}

استخدامه ل: تنظيف لوحات المعلومات الداخلية أو الصفحات التي تراجعها بشكل متكرر.

تعلم CSS وHTML
منشئ · JavaScript

أضف زر نسخ بجانب القيمة

قم بإنشاء مساعد صغير بدلاً من تكرار خطوات النسخ/اللصق يدويًا.

مثال
const value = document.querySelector('#order-id');if (value) { const button = document.createElement('button'); button.textContent = 'Copy'; button.onclick = () => navigator.clipboard.writeText(value.textContent.trim()); value.after(button);}

استخدامه ل: المعرفات أو المراجع أو القيم غير الحساسة التي تنسخها كثيرًا.

تعلم الأحداث
رد فعل · صفحات ديناميكية

انتظر المحتوى الذي سيظهر لاحقًا

غالبًا ما يتم عرض الصفحات الحديثة بعد التحميل الأول. راقب فقط ما تحتاجه.

مثال
const observer = new MutationObserver(() => { const result = document.querySelector('.result-ready'); if (!result) return; result.style.outline = '2px solid #4caf50'; observer.disconnect();});observer.observe(document.body, { childList: true, subtree: true });

استخدامه ل: لوحات معلومات SPA وعناصر واجهة المستخدم المؤجلة للصفحة.

تعلم الصفحات الديناميكية
التكامل · بروفايلات

استخدم نفس المساعد في بروفايلات منفصل

يظل البرنامج النصي قابلاً لإعادة الاستخدام بينما يحتفظ كل بروفايل بجلسة المتصفح الخاصة به وحالة الصفحة.

نفس السيناريو→بروفايل أ+بروفايل ب+بروفايل ج
  1. قم بإنشاء نص صغير واحد.
  2. تطابق الموقع المقصود فقط.
  3. افتح الموقع في اختبار مختلف بروفايلات.
  4. تأكد من أن المساعد يتصرف بشكل صحيح في كل سياق.
تعلم البرامج النصية + بروفايلات
متقدم · اختر الأداة

User Script + Automation Studio

احتفظ بمساعدي الصفحة الدائمين في User Script والتنسيق متعدد الخطوات في Automation Studio.

User Script+سير العمل→عملية قابلة لإعادة الاستخدام
  1. يعمل User Script على تحسين الصفحة المطابقة.
  2. يقوم Workflow بتنفيذ خطوات المتصفح المرتبة.
  3. تحدد الأتمتة بروفايلات وسياسة التنفيذ.
  4. المهمة تقرر متى يتم تشغيلها.
تعلم متى يتم الجمع بينهما
قبل تشغيل التعليمات البرمجية من الإنترنت: قراءتها، وفهم الصفحات التي تطابقها، والتحقق من سلوك التخزين/الشبكة، واختبارها في بروفايل الخاضع للتحكم. تتجنب هذه الأمثلة عمدًا كلمات المرور وملفات تعريف الارتباط وبيانات الجلسة.

مكتبة أمثلة GM API

وصفات GM مفيدة يمكنك نسخها وقراءتها وتكييفها.

كل مثال صغير عمدا. ابدأ بمشكلة واحدة، انسخ البرنامج النصي، واقرأ كل سطر، ثم قم بتغيير المحددات أو URLs أو التسميات التي تفهمها فقط.

افتح دليل GM API الكامل →
تذكر الإعداد؟ التخزينقراءة أصل آخر؟ الشبكةإضافة مساعد الصفحة؟ مساعدين الصفحةإضافة إجراء المستخدم؟ أوامر القائمةتنبيه المستخدم؟ الإخطاراتهل تريد حفظ ملف؟ التنزيلات
كاتب · التخزين

تذكر تفضيل الوضع المضغوط

احفظ تفضيلات واجهة المستخدم غير الضارة واستعادتها عند تحميل الصفحة التالية.

JavaScript · التفضيل المستمر
// ==UserScript==// @name Compact mode preference// @match https://example.com/*// @grant GM_getValue// @grant GM_setValue// ==/UserScript== const compact = GM_getValue('compact', false);document.documentElement.classList.toggle('my-compact-mode', compact); const button = document.createElement('button');button.textContent = compact ? 'Use normal mode' : 'Use compact mode';button.addEventListener('click', () => { GM_setValue('compact', !compact); location.reload();});document.body.prepend(button);
تعلم تخزين جنرال موتورز
منشئ · مساعد الصفحة

أضف لوحة مساعدة صغيرة

قم بإدخال CSS وعنصر مساعد دون استبدال تخطيط موقع الويب.

JavaScript · GM_addStyle + GM_addElement
// @grant GM_addStyle// @grant GM_addElement GM_addStyle(` .sb-helper { position: fixed; right: 16px; bottom: 16px; padding: 10px 12px; background: #111827; color: white; border-radius: 8px; z-index: 2147483647; }`); GM_addElement(document.body, 'div', { class: 'sb-helper', textContent: 'Page helper is active'});
تعلم مساعدي الصفحة
منشئ · الشبكة

اقرأ JSON من API المسموح به

استخدم طلبًا مميزًا عندما لا تكون البيانات التي تحتاجها جزءًا من الصفحة الحالية.

JavaScript · GM_xmlhttpRequest
// ==UserScript==// @name API status helper// @match https://example.com/*// @grant GM_xmlhttpRequest// @connect api.example.com// ==/UserScript== GM_xmlhttpRequest({ method: 'GET', url: 'https://api.example.com/status', responseType: 'json', onload(response) { console.log('Status:', response.response?.status); }, onerror(error) { console.error('Request failed:', error); }});
تعلم الطلبات المميزة
رد فعل · الحافظة

انسخ مرجع الصفحة بأمان

انسخ قيمة غير حساسة بعد نقرة مستخدم صريحة.

JavaScript · GM_setClipboard
// @grant GM_setClipboard const reference = document.querySelector('#reference-id');if (reference) { const copyButton = document.createElement('button'); copyButton.textContent = 'Copy reference'; copyButton.addEventListener('click', () => { GM_setClipboard(reference.textContent.trim(), 'text'); copyButton.textContent = 'Copied'; }); reference.after(copyButton);}
تعلم الوصول إلى الحافظة
رد فعل · أمر القائمة

أضف إجراء البرنامج النصي إلى قائمة User Script

احتفظ بالإجراءات الاختيارية خارج واجهة مستخدم الصفحة وقم بتشغيلها فقط عندما يطلب المستخدم ذلك.

JavaScript · GM_registerMenuCommand
// @grant GM_registerMenuCommand GM_registerMenuCommand('Highlight overdue rows', () => { document.querySelectorAll('[data-status="overdue"]').forEach(row => { row.style.outline = '2px solid currentColor'; });});
تعلم أوامر القائمة
دمج · الإخطار

قم بالإعلام عندما تكون مهمة الصفحة الطويلة جاهزة

إظهار إشعار المتصفح فقط لحدث ذي معنى.

JavaScript · GM_notification
// @grant GM_notification function notifyReady(label) { GM_notification({ title: 'Social Browser User Script', text: `${label} is ready to review`, timeout: 5000 });} // Call this only after your script detects the result.notifyReady('The report');
تعلم الإخطارات
دمج · علامات التبويب

افتح صفحة ذات صلة في علامة تبويب الخلفية

فتح المعلومات الداعمة دون استبدال الصفحة التي يراجعها المستخدم.

JavaScript · GM_openInTab
// @grant GM_openInTab const helpButton = document.createElement('button');helpButton.textContent = 'Open details';helpButton.addEventListener('click', () => { GM_openInTab('https://example.com/details', { active: false, insert: true });});document.body.prepend(helpButton);
تعلم علامة التبويب APIs
متقدم · حالة علامة التبويب

تذكر التقدم لعلامة تبويب متصفح واحدة

احتفظ بحالة البرنامج النصي المؤقتة المرفقة بعلامة التبويب الحالية بدلاً من التخزين العام.

JavaScript · GM_getTab + GM_saveTab
// @grant GM_getTab// @grant GM_saveTab GM_getTab(tabState => { tabState.reviewStep = (tabState.reviewStep || 0) + 1; GM_saveTab(tabState); console.log('Review step:', tabState.reviewStep);});
تعرف على حالة كل علامة تبويب
متقدم · تحميل

قم بتنزيل ملف التقرير

استخدم إمكانية التنزيل لملف طلب المستخدم من البرنامج النصي حفظه عمدًا.

JavaScript · GM_download
// @grant GM_download GM_download({ url: 'https://example.com/reports/today.csv', name: 'today-report.csv', saveAs: true, onload() { console.log('Download completed'); }, onerror(error) { console.error('Download failed:', error); }});
تعلم التنزيلات
متقدم · الموارد

قم بتجميع مورد نصي صغير مع برنامج نصي

قم بالإشارة إلى مورد معلن بدلاً من الترميز الثابت لأصل نصي كبير قابل لإعادة الاستخدام.

JavaScript · @resource + GM_getResourceText
// ==UserScript==// @name Template resource example// @match https://example.com/*// @resource helperTemplate https://example.com/assets/helper.html// @grant GM_getResourceText// ==/UserScript== const template = GM_getResourceText('helperTemplate');if (template) { const box = document.createElement('div'); box.innerHTML = template; document.body.append(box);}
تعلم الموارد
قبل تشغيل التعليمات البرمجية المنسوخةاقرأها، ضيِّقها @match القواعد، مراجعة كل @grant and @connect، واختبره في مكان آمن بروفايل أولاً.
دورة User Scriptsنظرة عامة على الدورة
اختر درسًا أو ابدأ الدورة الموجّهة.
البداية · الدرس الأول

ما هو User Script في الواقع

الوقت 5 دقائقهدف فهم ما يمكن أن يتغير User Scripts

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

بدون نص

  1. افتح الصفحة.
  2. قم بإجراء نفس التعديل الصغير.
  3. كرر ذلك في الزيارة القادمة.

مع User Script

  1. قم بإنشاء القاعدة مرة واحدة.
  2. قصره على الصفحات الصحيحة.
  3. دعه يعمل تلقائيًا عند فتح تلك الصفحات.

لماذا يعتبر User Scripts مفيدًا داخل Social Browser

يجمع Social Browser بين User Scripts والمتصفح المستمر بروفايلات. يمكن أن يحتفظ بروفايل بجلسته الخاصة وسعة تخزينه وإعداداته ونصوصه البرمجية، لذلك يمكن أن يظل التخصيص الصغير قريبًا من سياق المتصفح الذي تستخدمه فيه بالفعل.

هام: يقوم User Script بتشغيل التعليمات البرمجية داخل صفحات الويب. قم بتثبيت البرامج النصية فقط من المصادر التي تفهمها وتثق بها. يجب أن يكون البرنامج النصي المفيد سهل القراءة، ومحدودًا بالصفحات التي يحتاجها، وسهل التعطيل.
المبتدئ · الدرس الثاني

قم بإنشاء أول User Script الخاص بك

الوقت 5-10 دقائقهدف قم بتشغيل برنامج نصي صغير وشاهد تغيير الصفحة

ابدأ بشيء غير ضار ومرئي. الهدف هو إثبات التدفق الكامل: إنشاء → حفظ → تمكين → فتح صفحة مطابقة → رؤية النتيجة.

1

افتح User Scripts

افتح مدير User Script المدمج في Social Browser وقم بإنشاء برنامج نصي جديد.

2

أعطها اسما واضحا

استخدم اسمًا يوضح ما يفعله البرنامج النصي، مثل Highlight Test Heading.

3

اختر صفحة اختبار آمنة

استخدم صفحة تتحكم فيها أو صفحة غير ضارة حيث لن يؤدي تغيير العرض إلى إرسال البيانات أو تغيير الحساب.

4

أضف بضعة أسطر من JavaScript

const heading = document.querySelector('h1');if (heading) heading.style.outline = '3px solid currentColor';
5

احفظه وقم بتمكينه

أعد تحميل الصفحة المطابقة. إذا حصل العنوان على مخطط تفصيلي، فهذا يعني أن النص الأول يعمل.

قاعدة المبتدئين: نص واحد ونتيجة واحدة مرئية. لا تبدأ بنسخ نص مكون من 500 سطر لا يمكنك شرحه.
المبتدئ · الدرس الثالث

اجعل البرنامج النصي يعمل فقط في المكان الذي ينتمي إليه

الوقت 5 دقائقهدف استخدم قواعد URL المسموح بها والمستبعدة بأمان

تعد مطابقة الصفحة إحدى أهم مهارات User Script. لا يحتاج البرنامج النصي الذي يجب أن يخصص لوحة تحكم واحدة إلى إذن للتشغيل على كل موقع ويب تزوره.

1

مسموح به URLs

وصف الصفحات التي يكون فيها البرنامج النصي مفيدًا.

2

مستبعد URLs

قم بحظر الصفحات داخل تلك المنطقة حيث يجب أن يظل البرنامج النصي غير نشط.

3

اختبار كلا الجانبين

افتح صفحة واحدة متطابقة وصفحة واحدة غير متطابقة قبل أن تثق في القاعدة.

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

JavaScript الذي تحتاجه بالفعل أولاً

الوقت 10 دقيقةهدف قراءة وتغيير عناصر الصفحة البسيطة

لا تحتاج إلى لغة JavaScript بأكملها لجعل User Scripts مفيدًا. ابدأ بأربعة أفكار: العثور على عنصر، وقراءة قيمة، وتغيير شيء ما، والرد على حدث ما.

حاجةبسيط JavaScript
ابحث عن عنصر واحدdocument.querySelector('.price')
إقرأ نصهاelement.textContent
تغيير النصelement.textContent = 'Done'
تغيير النمطelement.style.fontWeight = '700'
الرد على نقرة واحدةbutton.addEventListener('click', handler)

تحقق دائمًا من وجود العنصر قبل استخدامه. تتغير مواقع الويب، ولا ينبغي للعنصر المفقود أن يؤدي إلى تعطل البرنامج النصي بأكمله.

البناء · الدرس الخامس

استخدم JavaScript وCSS وHTML لمهام مختلفة

الوقت 8 دقائقهدف اختر أبسط أداة لتغيير الصفحة
JS

JavaScript

استخدمه للمنطق والأحداث وقراءة القيم وتغيير السلوك.

CSS

CSS

استخدمه للمظهر: إخفاء العناصر المرئية أو تغيير حجمها أو تمييزها أو إعادة ترتيبها.

HTML

HTML

استخدمه عندما يحتاج البرنامج النصي إلى لوحة مساعدة صغيرة أو تسمية أو عنصر تحكم.

حافظ على تغييرات الصفحة صغيرة: تعد إضافة مربع مساعد أسهل في الصيانة من إعادة بناء واجهة موقع الويب داخل البرنامج النصي.
البناء · الدرس السادس

استخدم مدير البرنامج النصي المدمج

الوقت 7 دقائقهدف قم بإنشاء البرامج النصية والعثور عليها وتمكينها وتحريرها بثقة

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

  • إنشاء وتحرير البرنامج النصي.
  • ابحث عنه أو حدده باسم واضح.
  • تمكينه أو تعطيله دون حذفه.
  • قم بمراجعة قواعد JavaScript وCSS وHTML وURL معًا.
  • احتفظ بالنصوص التجريبية التي تحمل اسم الاختبارات بشكل واضح.
البناء · الدرس السابع

استيراد البرامج النصية دون التعامل مع الإنترنت كرمز موثوق به

الوقت 8 دقائقهدف قم بالاستيراد من ملف أو URL ومراجعته قبل التمكين

يمكن لـ Social Browser إنشاء البرامج النصية يدويًا أو استيرادها من ملف أو URL المباشر. يمكنه أيضًا التعرف على تدفقات تثبيت User Script الشائعة. إن الاستيراد أمر مريح، لكن الراحة ليست مثل الثقة.

1

تعرف على المصدر

تفضل الكود الذي كتبته، والذي يمتلكه فريقك، أو المصدر الذي يمكنك التحقق منه.

2

قراءة البيانات الوصفية

تحقق من الاسم ومطابقة URLs وسلوك التنفيذ.

3

قم بمراجعة الكود

ابحث عن طلبات الشبكة غير المتوقعة، أو إجراءات النماذج المخفية، أو الوصول إلى التخزين، أو المطابقة العامة للصفحات.

4

اختبار في بروفايل آمنة

قم بتمكينه على صفحة يتم التحكم فيها قبل استخدامه في جلسة متصفح مهمة.

البناء · الدرس الثامن

تخبر البيانات التعريفية المتصفح بكيفية تشغيل البرنامج النصي

الوقت 8 دقائقهدف فهم الإعدادات حول الكود

User Script المفيد أكثر من JavaScript. يمكن لـ Social Browser استخدام معلومات البرنامج النصي مثل العنوان/الاسم، وURLs المسموح به والمستبعد، ورؤية القائمة، ونطاق النافذة/الإطار، والتنفيذ التلقائي، وتنفيذ مرحلة التحميل المسبق.

الإعدادسؤال يجيب عليه
الاسم / العنوانماذا يفعل هذا البرنامج النصي؟
مسموح به URLsأين يمكن تشغيله؟
مستبعد URLsأين يجب أن لا تعمل؟
نطاق النافذة / الإطارما هو سياق المستند الذي يجب أن يستقبله؟
التنفيذ التلقائيهل يجب تشغيله بدون إجراء قائمة يدوي؟
مرحلة التحميل المسبقهل يجب البدء مبكرًا في تحميل الصفحة؟
رؤية القائمةهل يجب أن يكون المستخدم قادرًا على تشغيله من قائمة البرامج النصية؟
رد فعل · الدرس 9

قم بالتفاعل مع الصفحة بدلاً من التحقق منها باستمرار

الوقت 8 دقائقهدف استخدم أحداث DOM للتفاعلات البسيطة

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

const button = document.querySelector('#save');button?.addEventListener('click', () => { console.log('Save button clicked');});
قاعدة الأداء: تفضل حدثًا أو مراقبًا محددًا على مؤقت عالي التردد دائم.
رد فعل · الدرس 10

التعامل مع الصفحات التي تتغير بعد تحميلها

الوقت 10 دقيقةهدف العمل مع العناصر المؤجلة والمعاد عرضها

غالبًا ما تعرض مواقع الويب الحديثة المحتوى بعد تحميل الصفحة الأولى. إذا لم يكن العنصر المستهدف موجودًا بعد، فيمكن للبرنامج النصي انتظاره أو مراقبة جزء معين من الصفحة لإجراء التغييرات.

تجنب التأخير الطويل التعسفي. قد يؤدي الانتظار لمدة خمس ثوانٍ في كل مكان إلى إخفاء المشكلة ولكنه يجعل البرامج النصية بطيئة وغير موثوقة. انتظر الشيء الذي تحتاجه بالفعل، وتوقف عن الانتظار بعد حد معقول.
رد فعل · الدرس 11

احفظ التفضيلات الصغيرة، وليس الأسرار

الوقت 7 دقائقهدف تذكر إعدادات البرنامج النصي غير الضارة

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

بيانات تفضيل جيدة

  • لوحة مفتوحة/مغلقة.
  • صفوف لكل صفحة.
  • خيار العرض.

تعامل على أنها حساسة

  • كلمات المرور.
  • أسرار 2FA.
  • مادة الجلسة/ملفات تعريف الارتباط.
رد فعل · الدرس 12

قراءة بيانات الصفحة أولا؛ طلب بيانات أخرى فقط عند الحاجة

الوقت 8 دقائقهدف اجعل الوصول إلى البيانات بسيطًا ومفهومًا

إذا كانت المعلومات موجودة بالفعل في الصفحة، فاقرأها من DOM. إذا كان البرنامج النصي الخاص بك يحتاج حقًا إلى مورد ويب آخر، فإن قواعد شبكة المتصفح العادية تظل مهمة. اجعل الطلبات مرئية في التعليمات البرمجية الخاصة بك وتجنب إرسال بيانات الصفحة/الحساب إلى مكان لم يتوقعه المستخدم.

قاعدة بسيطة: if the script sends data away from the page, a reviewer should be able to see exactly what is sent and why.
التكامل · الدرس 13

أصبح User Scripts أكثر فائدة مع البروفايلات الدائمة

الوقت 8 دقائقهدف فهم سلوك البرنامج النصي داخل سياقات المتصفح المنفصلة

يحتفظ Social Browser بروفايل بسياق المتصفح الخاص به. وهذا يعني أنه يمكنك إبقاء جلسات الحساب وحالة الصفحة منفصلة أثناء إعادة استخدام نفس فكرة البرمجة النصية عند الاقتضاء. اختبر البرنامج النصي في سياق بروفايل المحدد حيث سيتم تشغيله بالفعل.

البروفايل→الصفحة المطابقة→User Script→تحسين الصفحة الصغيرة

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

التكامل · الدرس 14

الإطارات والتوقيت: قم بتشغيل المستند المناسب في اللحظة المناسبة

الوقت 10 دقيقةهدف اختر النطاق وتوقيت التنفيذ عمدا

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

النطاق

الصفحة الرئيسية أو الإطار؟

حدد المستند الذي يحتوي بالفعل على العنصر.

التوقيت

عادي أو التحميل المسبق؟

ابدأ مبكرًا فقط عندما يحتاج البرنامج النصي إلى التأثير على التهيئة.

ديناميكي

قدمت في وقت لاحق؟

إذا قامت الصفحة بإنشاء العنصر لاحقًا، فتعامل مع المحتوى الديناميكي بدلاً من تغيير النطاق بشكل أعمى.

التكامل · الدرس 15

قم بتصحيح أخطاء User Script دون التخمين

الوقت 10 دقيقةهدف اكتشف ما إذا كانت المشكلة تتعلق بالمطابقة أو التوقيت أو الكود أو موقع الويب
1

تأكد من تمكين البرنامج النصي

لا تقم بتصحيح التعليمات البرمجية المعطل حاليًا.

2

قم بتأكيد تطابقات URL

التحقق من القواعد المسموح بها والمستبعدة.

3

أضف رسائل وحدة تحكم واضحة

قم بالتسجيل عند بدء تشغيل البرنامج النصي وقبل العملية التي تختبرها.

4

التحقق من العنصر المستهدف

معرفة ما إذا كان موجودًا حتى الآن وما إذا كانت الصفحة قد أعادت عرضه.

5

تعطيل البرنامج النصي والمقارنة

إذا استمرت مشكلة الصفحة بعد تعطيلها، فقد لا يكون البرنامج النصي هو السبب.

المرحلة 4 كاملةيمكنك الآن إنشاء User Scripts العادي ونطاقه وتصحيحه داخل Social Browser.
متقدم · الدرس 16

اكتب نصوصًا يسهل الوثوق بها وصيانتها

الوقت 10 دقيقةهدف تقليل الوصول غير الضروري والسلوك المخفي
  • قم بمطابقة الصفحات التي يحتاجها البرنامج النصي فقط.
  • استخدم أسماء وتعليقات واضحة للسلوك غير الواضح.
  • اجعل وجهات الشبكة مرئية في الكود.
  • تجنب تخزين معلومات الحساب الحساسة.
  • أوقف المراقبين وأجهزة ضبط الوقت عندما لا تكون هناك حاجة إليهم.
  • لا تخفي آثارًا جانبية مهمة وراء وظائف مساعدة غامضة.
  • اختبر التغييرات في بروفايل الآمن قبل الجلسات المهمة.
  • احتفظ بطريقة سريعة لتعطيل البرنامج النصي.
متقدم · الدرس 17

وصفات User Script العملية

الوقت 15 دقيقةهدف ابدأ بأنماط صغيرة قابلة لإعادة الاستخدام
الوصفة 1 · إبراز القيم المهمةمبتدئ
  1. تطابق صفحة واحدة محددة.
  2. العثور على عناصر القيمة.
  3. أضف فئة أو نمط CSS.
  4. لا تفعل شيئًا إذا كانت العناصر مفقودة.
وصفة 2 · إضافة اختصار الصفحةمبتدئ
  1. قم بإنشاء زر مساعد صغير.
  2. أدخله بالقرب من المنطقة ذات الصلة.
  3. استمع لنقرتها.
  4. تنفيذ إجراء صفحة محلية واحد.
وصفة 3 · تنظيف لوحة القيادةمتوسط
  1. إخفاء فقط الفوضى البصرية المحددة بوضوح.
  2. احتفظ بعناصر التحكم في الصفحة الرئيسية دون تغيير.
  3. احفظ تفضيل عرض واحد غير ضار إذا كان مفيدًا.
وصفة 4 · مساعدة النموذج المتكررمتوسط
  1. كشف النموذج.
  2. املأ فقط القيم المتكررة غير الحساسة التي يتوقعها المستخدم.
  3. اترك قرار الإرسال النهائي مرئيًا للمستخدم ما لم يتطلب سير العمل أتمتة بشكل صريح.
وصفة 5 · انتظر المحتوى الديناميكيمتوسط
  1. ابحث مرة واحدة عن العنصر.
  2. في حالة فقدانها، لاحظ منطقة الوالدين الضيقة.
  3. توقف عن المراقبة بعد ظهور العنصر أو بعد انتهاء المهلة.
متقدم · الدرس 18

User Script أو Automation Studio أو كليهما؟

الوقت 8 دقائقهدف اختر أبسط أداة لهذه المهمة
أريد أن…ابدأ ب…
تغيير شكل أو سلوك إحدى الصفحات المتطابقة عندما أقوم بفتحهاUser Script
أضف مساعدًا أو اختصارًا صغيرًا للصفحةUser Script
قم بتشغيل عملية متصفح مرتبة متعددة الخطواتAutomation Studio Workflow
قم بتشغيل نفس العملية عبر بروفايلات أو وفقًا لجدول زمنيAutomation Studio
احتفظ بتخصيص مفيد للصفحة أثناء تشغيل Automation WorkflowUser Script + Automation Studio
تحتاج إلى منطق صفحة مخصص داخل سير عمل أكبراستخدم أبسط مجموعة مدعومة وحافظ على وضوح المسؤوليات
الهندسة المعمارية الجيدة مملة: حافظ على التخصيص المستمر للصفحة في User Script وتنسيق سير العمل في Automation Studio. لا تقم بتحويل برنامج نصي عملاق إلى نظام أتمتة كامل إذا كان الاستوديو يوفر بالفعل ميزة سير العمل.
مرجع GM API

GM APIs في Social Browser - من الاستخدام الأول إلى البرامج النصية المتقدمة

استخدم هذا عندما الصفحة العادية JavaScript ليست كافيةهدف استخدم إمكانيات البرنامج النصي على مستوى المتصفح بأمان

توفر GM API إمكانات User Script التي لا تمتلكها الصفحة العادية JavaScript دائمًا، مثل التخزين على نطاق البرنامج النصي والطلبات عبر الأصل والإشعارات والتنزيلات والوصول إلى الحافظة والموارد وأوامر قائمة البرامج النصية. في Social Browser، صريحة @grant يتلقى البرنامج النصي فقط الإمكانات التي يطلبها.

تصفح حسب الفئة أو ابحث حسب اسم API.

ابدأ صغيرًا: لا تضيف كل @grant سطر "فقط في حالة". اسأل فقط عن APIs التي يستخدمها البرنامج النصي بالفعل. وهذا يجعل النص أسهل في الفهم والمراجعة والثقة.

ابدأ من هنا

How @grant يعمل

بالنسبة للنصوص البرمجية الجديدة، أعلن عن كل امتيازات API التي تستخدمها. يقوم Social Browser بتشغيل البرامج النصية ذات المنح الصريحة في عالم User Script المعزول ويربط فقط الإمكانات المطلوبة. السيناريو مع @grant none يعمل بدون قدرات جنرال موتورز.

JavaScript · الحد الأدنى من النص الممنوح
// ==UserScript==// @name Remember display mode// @namespace https://example.com/my-scripts// @match https://example.com/*// @grant GM_getValue// @grant GM_setValue// ==/UserScript== const mode = GM_getValue('displayMode', 'compact');console.log('Saved mode:', mode); GM_setValue('displayMode', 'comfortable');

كلاسيكي GM_* أو الحديثة GM.*?

يدعم Social Browser الأسماء الكلاسيكية المألوفة والحديثة GM.* forms for the main GM capability set. The modern form is Promise-friendly, so use await. اختر نمطًا واحدًا لكل نص وحافظ على الاتساق.

كلاسيكي
JavaScript
const theme = GM_getValue('theme', 'dark');GM_setValue('theme', 'light');
حديث
JavaScript
const theme = await GM.getValue('theme', 'dark');await GM.setValue('theme', 'light');

GM_info / GM.info

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

JavaScript · فحص البيانات الوصفية للبرنامج النصي
// @grant GM_info console.log('Script:', GM_info.script.name);console.log('Version:', GM_info.version);console.log('Handler:', GM_info.scriptHandler);console.log('Grants:', GM_info.scriptGrants);console.log('Matches:', GM_info.scriptMatches);

التخزين

تذكر بيانات البرنامج النصي الصغيرة

تم تحديد نطاق تخزين GM إلى User Script بدلاً من كونه تخزينًا عاديًا للصفحات. إنه مثالي للتفضيلات غير الضارة والعدادات وحالة البرنامج النصي. لا تستخدمه كخزنة غير رسمية لكلمات المرور أو أسرار المصادقة الثنائية (2FA) أو ملفات تعريف الارتباط أو مواد الجلسة.

APIماذا يفعلنتيجة نموذجية
GM_getValue(key, defaultValue)قراءة قيمة واحدة محفوظة.القيمة المحفوظة أو الافتراضية الخاصة بك.
GM_setValue(key, value)حفظ قيمة واحدة.تحديثات التخزين على نطاق البرنامج النصي.
GM_deleteValue(key)إزالة قيمة واحدة.يختفي المفتاح.
GM_listValues()قائمة المفاتيح المحفوظة.مجموعة من الأسماء الرئيسية.
GM_getValues(...)قراءة عدة قيم معًا.كائن من القيم.
GM_setValues(object)حفظ عدة قيم معًا.يقوم بتحديث كل مفتاح متوفر.
GM_deleteValues(keys)حذف عدة مفاتيح.إزالة القيم المدرجة.
JavaScript · حفظ تفضيلات المستخدم
// @grant GM_getValue// @grant GM_setValue// @grant GM_deleteValue const settings = GM_getValue('settings', { compact: true, rowsPerPage: 25}); settings.rowsPerPage = 50;GM_setValue('settings', settings); // Reset later if the user asks for defaults.// GM_deleteValue('settings');

شاهد تغير القيمة

GM_addValueChangeListener يكون مفيدًا عندما يكون نفس البرنامج النصي مفتوحًا في أكثر من إطار أو علامة تبويب. يتلقى رد الاتصال (name, oldValue, newValue, remote). في Social Browser، يمكن مزامنة أحداث تغيير القيمة عبر الإطارات/علامات التبويب في نفس بروفايل/الجلسة.

JavaScript · مستمع التخزين
// @grant GM_addValueChangeListener// @grant GM_removeValueChangeListener const listenerId = GM_addValueChangeListener( 'displayMode', (name, oldValue, newValue, remote) => { console.log({ name, oldValue, newValue, remote }); }); // Remove it when you no longer need it.// GM_removeValueChangeListener(listenerId);

مساعدين الصفحة

إضافة أنماط أو عناصر صغيرة

GM_addStyle(css) / GM.addStyle(css)

استخدم هذا عندما يكون تخصيص الصفحة مرئيًا في الغالب. إنه أنظف من وضع العديد من الأفراد element.style خصائص.

JavaScript · حقن CSS
// @grant GM_addStyle GM_addStyle(` .important-total { font-weight: 700; outline: 2px solid currentColor; padding: 4px 8px; }`);

GM_addElement(...) / GM.addElement(...)

أنشئ عنصر DOM صغيرًا وألحقه بأمان. يمكنك تمرير العنصر الأصلي أولاً، أو حذفه لاستخدام نص الصفحة.

JavaScript · إضافة زر مساعد
// @grant GM_addElement const panel = document.querySelector('#account-panel');if (panel) { GM_addElement(panel, 'button', { type: 'button', textContent: 'Copy account ID', className: 'my-copy-button', onclick() { const id = panel.querySelector('.account-id')?.textContent?.trim(); if (id) navigator.clipboard.writeText(id); } });}

الشبكة

تقديم طلبات مميزة مع GM_xmlhttpRequest

صفحة عادية fetch() يتم التحكم فيه من خلال قواعد المتصفح/CORS العادية للصفحة. طلب GM الخاص بـ Social Browser يستخدم API قناة طلب مخصصة لعملية المتصفح. قبل إرسال الطلب، يتم التحقق من وجهته مقارنة بالبرنامج النصي @connect القواعد.

الوصول إلى الشبكة يستحق المراجعة. اجعل الوجهات ضيقة ومرئية. لا ترسل أبدًا بيانات الحساب/الصفحة إلى خدمة لا يتوقعها المستخدم.
JavaScript · طلب JSON
// ==UserScript==// @match https://app.example.com/*// @connect api.example.com// @grant GM_xmlhttpRequest// ==/UserScript== const response = await GM_xmlhttpRequest({ method: 'GET', url: 'https://api.example.com/status', responseType: 'json', timeout: 10000, headers: { Accept: 'application/json' }}); console.log(response.status, response.response);

عمليات الاسترجاعات والإجهاض

يدعم الطلب API عمليات الاسترجاعات للطلبات الشائعة ويقوم بإرجاع مؤشر يمكن إحباطه. استخدم المهلة حتى عندما تدعم الإجهاض أيضًا.

JavaScript · رد الاتصال + إحباط
// @connect api.example.com// @grant GM_xmlhttpRequest const request = GM_xmlhttpRequest({ url: 'https://api.example.com/slow-report', timeout: 15000, onload(response) { console.log('Loaded:', response.status); }, onerror(error) { console.error('Request failed:', error); }, ontimeout() { console.warn('Request timed out'); }, onabort() { console.log('Request aborted'); }}); // Cancel only if your script no longer needs the result.// request.abort();

الشكل الحديث: GM.xmlHttpRequest(...) and GM.xmlhttpRequest(...) خريطة لنفس القدرة على الطلب.

المصادر

حزمة نصية قابلة لإعادة الاستخدام، CSS أو أصول أخرى

أعلن عن الأصول مع @resource، ثم قراءته بالاسم. GM_getResourceText returns decoded text. GM_getResourceURL returns a data URL that preserves the response MIME type.

JavaScript · @resource
// ==UserScript==// @resource helperCss https://example.com/assets/helper.css// @grant GM_getResourceText// @grant GM_getResourceURL// ==/UserScript== const css = await GM_getResourceText('helperCss');console.log(css); const dataUrl = await GM_getResourceURL('helperCss');console.log(dataUrl);

إذا كان اسم المورد غير موجود، فسيتم إرجاع API undefined. اجعل أسماء الموارد قصيرة ووصفية.

مساعدي المتصفح

علامات التبويب والإخطارات والحافظة

GM_openInTab(url, options)

افتح URL في علامة التبويب Social Browser. استخدم active: false متى يجب أن تفتح علامة التبويب الجديدة دون التركيز.

JavaScript · افتح علامة تبويب الخلفية
// @grant GM_openInTab GM_openInTab('https://example.com/report', { active: false});

حالة البرنامج النصي لكل علامة تبويب: GM_getTab, GM_saveTab, GM_getTabs

تقوم API بتخزين حالة User Script الصغيرة المرتبطة بعلامات التبويب. تكون مفيدة عندما يحتاج البرنامج النصي إلى تذكر الخطوة أو العرض الذي ينتمي إلى علامة تبويب معينة دون مزجها مع تفضيلات البرنامج النصي العامة.

JavaScript · تذكر حالة علامة التبويب هذه
// @grant GM_getTab// @grant GM_saveTab// @grant GM_getTabs const tabState = await GM_getTab();await GM_saveTab({ ...tabState, lastPanel: 'orders'}); const allScriptTabs = await GM_getTabs();console.log(allScriptTabs);

GM_notification

إظهار إشعار المتصفح لشيء يجب على المستخدم ملاحظته بالفعل. تجنب البريد العشوائي للإشعارات المتعلقة بنشاط البرنامج النصي الروتيني.

JavaScript · الإخطار
// @grant GM_notification await GM_notification({ title: 'Report ready', text: 'The page data is ready to review.'});

GM_setClipboard(data, type)

انسخ النص (أو HTML عند الطلب) إلى الحافظة. استخدمه بعد إجراء واضح للمستخدم عندما يكون ذلك ممكنًا، حتى يفهم المستخدم سبب تغيير الحافظة الخاصة به.

JavaScript · نسخ قيمة الصفحة
// @grant GM_setClipboard const orderId = document.querySelector('.order-id')?.textContent?.trim();if (orderId) { GM_setClipboard(orderId, 'text');}

القوائم والتنزيلات

أضف إجراءات المستخدم المتعمدة

GM_registerMenuCommand / GM_unregisterMenuCommand

قم بتسجيل أمر في قائمة User Script. يعد هذا نموذجًا جيدًا للإجراءات التي يجب أن تحدث فقط عندما يطلبها المستخدم صراحةً.

JavaScript · أمر القائمة
// @grant GM_registerMenuCommand// @grant GM_unregisterMenuCommand const commandId = GM_registerMenuCommand( 'Highlight overdue rows', () => { document.querySelectorAll('.row.overdue').forEach((row) => { row.style.fontWeight = '700'; }); }); // Remove the menu item later if the script no longer needs it.// GM_unregisterMenuCommand(commandId);

GM_download

ابدأ التنزيل من خلال Social Browser. قم بتسمية الملف بشكل واضح واستخدمه فقط عندما يكون التنزيل جزءًا من الغرض المرئي للبرنامج النصي.

JavaScript · تنزيل ملف
// @grant GM_download await GM_download({ url: 'https://example.com/reports/today.csv', name: 'today-report.csv'});

متقدم

unsafeWindow: الجسر إلى الصفحة العالمية فقط عند الضرورة

تعمل User Scripts ذات المنح الصريحة عادةً في عالم معزول. unsafeWindow عبارة عن جسر اختياري للوصول إلى العالميين في العالم الرئيسي للصفحة. استخدمه فقط عندما يكشف موقع الويب عن متغير صفحة أو وظيفة لا يمكن الوصول إليها بواسطة البرنامج النصي المعزول العادي.

استخدم بشكل ضيق: تنتمي الصفحات العالمية إلى موقع الويب وقد تتغير دون إشعار. تفضل APIs DOM العادية عندما تحل المشكلة.
JavaScript · قراءة صفحة عالمية
// @grant unsafeWindow const appVersion = unsafeWindow.appConfig?.version;if (appVersion) { console.log('Page app version:', appVersion);}

حكم التنفيذ العالمي

البيانات الوصفيةالسلوك في Social Browser
@grant noneيعمل في العالم الرئيسي للإطار المستهدف بالضبط بدون حقن قدرة GM.
واحدة أو أكثر صريحة @grantsيعمل في عالم User Script الحتمي المعزول؛ يتم سد القدرات المطلوبة فقط.
No @grant البيانات الوصفيةيتم الاحتفاظ بوضع التوافق Legacy MAIN-world للنصوص البرمجية Social Browser الموجودة.

مثال كامل

برنامج نصي صغير يجمع بين التخزين والأنماط وأوامر القائمة والحافظة

يبقى هذا المثال صغيرًا عن قصد. فهو يتذكر ما إذا كان التمييز ممكنًا، ويضيف قاعدة نمط واحدة، ويتيح للمستخدم تبديلها من قائمة User Script، وينسخ قيمة الصفحة المرئية فقط عندما يُطلب منه ذلك.

JavaScript · أكمل User Script
// ==UserScript==// @name Helpful order-page tools// @namespace https://example.com/my-scripts// @version 1.0.0// @match https://example.com/orders/*// @grant GM_getValue// @grant GM_setValue// @grant GM_addStyle// @grant GM_registerMenuCommand// @grant GM_setClipboard// ==/UserScript== (() => { 'use strict';  GM_addStyle(` .sb-order-highlight { outline: 2px solid currentColor; font-weight: 700; } `);  const applyHighlight = () => { const enabled = GM_getValue('highlightEnabled', true); document.querySelectorAll('.order-total').forEach((element) => { element.classList.toggle('sb-order-highlight', enabled); }); };  GM_registerMenuCommand('Toggle order highlighting', () => { const current = GM_getValue('highlightEnabled', true); GM_setValue('highlightEnabled', !current); applyHighlight(); });  GM_registerMenuCommand('Copy current order ID', () => { const orderId = document.querySelector('.order-id')?.textContent?.trim(); if (orderId) { GM_setClipboard(orderId, 'text'); } });  applyHighlight();})();

ملاحظة التوافق

ما يعامله هذا الدليل على أنه عقد GM المدعوم

يركز هذا الدليل على الإمكانات التي تشكل جزءًا من الصريح الحالي لـ Social Browser @grant الجسر: التخزين، مستمعي تغيير القيمة، الأنماط/العناصر، الطلبات المميزة، الموارد، علامات التبويب، الإشعارات، الحافظة، التنزيلات، أوامر القائمة، GM_info and unsafeWindow.

قد تكون بعض الأسماء القديمة/الداخلية موجودة للتوافق مع الإصدارات السابقة، ولكن لم يتم تقديمها هنا عمدًا على أنها API العامة الموصى بها حتى تصبح جزءًا من عقد القدرة الصريح. يؤدي ذلك إلى إبقاء البرامج النصية الجديدة على المسار الثابت بدلاً من تدريس تفاصيل التنفيذ العرضية.

افتح المرجع السريع User Scriptsافتح عند الحاجة

قدرات البرنامج النصي في Social Browser

الإمكانيةالغرض
الاسم / العنوانتحديد البرنامج النصي بوضوح.
مسموح به URLsاختر المكان الذي يمكن تشغيله فيه.
مستبعد URLsمنع صفحات معينة من التنفيذ.
JavaScriptأضف المنطق وسلوك الصفحة.
CSSتغيير مظهر الصفحة.
HTMLإضافة عناصر واجهة صفحة صغيرة.
رؤية القائمةالتحكم في ظهوره كإجراء برنامج نصي يتم تشغيله بواسطة المستخدم.
نطاق النافذة / الإطاراختر سياق المستند الذي يستقبل البرنامج النصي.
التنفيذ التلقائيالتشغيل على الصفحات المطابقة تلقائيًا.
تنفيذ مرحلة التحميل المسبقابدأ مبكرًا عندما يتطلب البرنامج النصي ذلك.
الاستيراد من الملف / URLإحضار البرامج النصية الموجودة إلى المدير.
البيانات الوصفية الشائعة لـ User Scriptاستخدم اصطلاحات البيانات الوصفية المألوفة حيثما تكون مدعومة.

مسرد

User Script
JavaScript، بشكل اختياري مع CSS/HTML، الذي يتم تشغيله في صفحات المتصفح المحددة.
قاعدة المباراة
قاعدة تحدد URLs التي تتلقى البرنامج النصي.
DOM
تمثيل كائن المتصفح للصفحة التي يمكن لـ JavaScript قراءتها وتغييرها.
حدث
إشارة الصفحة مثل النقر أو تغيير الإدخال.
الإطار
مستند مضمن داخل صفحة أخرى.
التحميل المسبق
مرحلة تنفيذ سابقة تستخدم عندما يكون توقيت الصفحة العادي متأخرًا جدًا بالنسبة لحاجة معينة.
البروفايل
بيئة Social Browser معزولة ومستمرة مع حالة المتصفح الخاصة بها.

قائمة التحقق للمبتدئين

  • يمكنني أن أشرح ما هو User Script.
  • لقد قمت بإنشاء وتعطيل برنامج نصي للاختبار.
  • يمكنني قصر البرنامج النصي على URLs الصحيح.
  • يمكنني العثور على عنصر صفحة بسيط وتغييره.
  • أعرف متى يكون CSS كافيًا.
  • أقوم بمراجعة الكود المستورد قبل تمكينه.
  • يمكنني استخدام وحدة التحكم لتصحيح البرنامج النصي.

قائمة المراجعة المتقدمة

  • أبقي قواعد المباراة ضيقة.
  • أنا أفهم الصفحات الديناميكية والمراقبين المحدودين.
  • أتعامل مع التخزين والوصول إلى الشبكة عمدا.
  • اخترت نطاق الإطار والتوقيت لسبب ما.
  • أقوم باختبار البرامج النصية في سياق بروفايل المقصود.
  • أعرف متى تكون Automation Studio أداة أفضل.
افتح أسئلة User Script الشائعةافتح عند الحاجة
هل أحتاج إلى أن أكون مطور JavaScript؟

لا، فالنصوص البرمجية الصغيرة المفيدة غالبًا ما تحتاج فقط إلى تحديد DOM الأساسي والأحداث والشروط البسيطة. تعرف على المزيد JavaScript عندما تتطلب حالة الاستخدام الحقيقية ذلك.

هل يمكن أن يتضمن User Script CSS وHTML؟

نعم. يمكن أن يشتمل نظام User Script الخاص بـ Social Browser على تخصيصات JavaScript، وتخصيصات CSS وHTML، وفقًا للبرنامج النصي.

هل يمكنني استيراد User Scripts الموجود؟

يمكن إنشاء البرامج النصية يدويًا أو استيرادها من ملف أو من URL مباشرة، ويتم دعم اصطلاحات التثبيت/بيانات التعريف الشائعة User Script حيثما أمكن ذلك. قم بمراجعة الكود المستورد قبل تمكينه.

هل User Scripts هو نفسه Automation Studio؟

لا، User Scripts هي الأفضل للتعليمات البرمجية التي تعيش مع الصفحات المتطابقة. تم تصميم Automation Studio لسير العمل المطلوب واستهداف بروفايل وسياسة التنفيذ والجدولة والتحقق والاسترداد. يمكنهم أن يكملوا بعضهم البعض.

هل يمكن تشغيل البرامج النصية في بروفايلات مختلفة؟

تعمل User Scripts في سياقات صفحة المتصفح. قم باختبارها وإدارتها في Social Browser بروفايل المقصود لأن الملفات الشخصية يمكن أن تحتوي على جلسات ومحتوى وحالة متصفح مختلفة.

ما هي الطريقة الأكثر أمانًا لتثبيت البرنامج النصي من الإنترنت؟

تعرف على المصدر، واقرأ البيانات التعريفية، وافحص الكود، وتحقق من نطاق URL وسلوك الشبكة/التخزين، ثم اختبره في بروفايل الخاضع للتحكم قبل الاستخدام المهم.

جاهز للتجربة؟

اجعل صفحة واحدة أفضل باستخدام برنامج نصي صغير.

قم بتنزيل Social Browser، وأنشئ اختبارًا واحدًا بروفايل، وأضف User Script صغيرًا، واجعل الأمر بسيطًا بدرجة كافية بحيث يمكنك شرح كل سطر.