أنشئ APK مجانًا

هيكل التطبيق والتنقل

سكربتات المستخدم الذكية

سكربتات لكل موقع مع مطابقة الروابط والتوقيت (مثل Greasemonkey)

1ما هي Smart User Scripts؟#

Smart User Scripts هي سكربتات فردية لها أسماء - ولكل منها:
🌐 أنماط مطابقة الروابط (الصفحات التي يعمل عليها)
⏱ توقيت التشغيل (قبل التحميل أو أثناءه أو بعده)
✅ مفتاح التفعيل/التعطيل

تعمل مثل Greasemonkey أو Tampermonkey في متصفحات سطح المكتب - لكنها مدمجة مباشرة في تطبيقك.

✅ مثالي لـ:

  • تسجيل دخول تلقائي في صفحة /login فقط
  • أخفِ الإعلانات فقط في صفحات المقالات (https://news.com/article/*)
  • راقب تغييرات DOM باستخدام MutationObserver
  • احقن قبل عرض الصفحة (document-start) لتجنب الوميض

الفرق الرئيسي عن Quick Injection:
Quick Injection = نفس CSS/JS على جميع الصفحات
Smart User Scripts = تحكم لكل سكربت ولكل رابط ولكل توقيت

2أين تجدها#

الخطوة 4 (الأذونات) ← مرر للأسفل ← بطاقة 🤖 Smart User Scripts.

اضغط '+ إضافة' لإنشاء سكربت جديد. لكل سكربت:

  • الاسم - يظهر في قائمة المدير
  • أنماط مطابقة الروابط - واحد في كل سطر (يدعم رمز البدل *)
  • Run At - document-end / document-start / document-idle
  • الكود - JavaScript الخاص بك
  • مفتاح التفعيل

اضغط على أي صف لتعديل السكربت أو حذفه.

3أمثلة على أنماط مطابقة الروابط#

تحدد الأنماط الصفحات التي يعمل عليها السكربت. استخدم * كرمز بدل:

# Run on every page of every site
*://*/*

# Run only on example.com (any path)
https://example.com/*

# Run on ALL pages of ANY .com domain
https://*.com/*

# Run only on the /login path
https://example.com/login
https://example.com/login/*

# Run on news article pages
https://news.example.com/article/*

4شرح توقيت التشغيل Run-At#

  • document-end (الافتراضي)

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

  • document-start ⚡ (متقدم)

يعمل قبل عرض الصفحة. يحقن السكربت في HTML الخام عبر shouldInterceptRequest. يزيل ترويسات CSP. استخدمه لـ CSS الوضع الداكن أو لفرض نافذة العرض قبل رسم التخطيط.

  • document-idle ⏱

يعمل بعد 1.5 ثانية من تحميل الصفحة. مناسب لالتقاط محتوى AJAX المتأخر أو النوافذ التي تظهر بعد مهلة.

5مثال 1: تسجيل دخول تلقائي في /login فقط#

Match: https://myapp.com/login
Run-at: document-end

// Auto-fill login form
(function() {
  var email = document.querySelector('input[type=email], input[name=email]');
  var pass  = document.querySelector('input[type=password]');
  if (email) email.value = '[email protected]';
  if (pass)  pass.value  = 'mypassword';
  // Uncomment to auto-submit:
  // var form = document.querySelector('form');
  // if (form) form.submit();
})();

6مثال 2: إخفاء جدران الدفع في صفحات المقالات#

Match: https://news.site.com/article/*
Run-at: document-end

// Hide paywall overlay and restore scroll
(function() {
  var overlay = document.querySelector('.paywall-overlay, .metered-content, #paywall');
  if (overlay) overlay.remove();
  document.body.style.overflow = 'auto';
  document.documentElement.style.overflow = 'auto';
})();

7مثال 3: مراقبة المحتوى الديناميكي (MutationObserver)#

Match: *://*/*
Run-at: document-end
للعناصر التي تظهر بعد تحميل الصفحة (نوافذ وإعلانات محمّلة بتأخير):

// Remove any modal/popup that appears dynamically
(function() {
  var sel = '.modal, .popup, .overlay, [class*="modal"], [class*="popup"]';
  // Remove existing ones first
  document.querySelectorAll(sel).forEach(function(el) { el.remove(); });
  // Watch for new ones
  var obs = new MutationObserver(function() {
    document.querySelectorAll(sel).forEach(function(el) { el.remove(); });
  });
  obs.observe(document.body, { childList: true, subtree: true });
  // Stop watching after 30 s to save battery
  setTimeout(function() { obs.disconnect(); }, 30000);
})();

8مثال 4: فرض الوضع الداكن قبل العرض (document-start)#

Match: *://*/*
Run-at: document-start
يحقن CSS قبل رسم الصفحة - بدون وميض أبيض:

// Inject dark theme before page renders
(function() {
  var s = document.createElement('style');
  s.id = '__force_dark__';
  s.textContent = [
    'html { filter: invert(1) hue-rotate(180deg) !important; }',
    'img,video,canvas,svg { filter: invert(1) hue-rotate(180deg) !important; }'
  ].join('\
');
  (document.head || document.documentElement).appendChild(s);
})();

9مثال 5: تحليلات مخصصة / تتبع الأحداث#

Match: https://myshop.com/*
Run-at: document-idle
أرسل أحداثًا مخصصة بعد استقرار الصفحة تمامًا:

// Track page views + button clicks
(function() {
  // Page view
  console.log('[Analytics] Page: ' + location.href);

  // Track all CTA button clicks
  document.querySelectorAll('button, .btn, a[href]').forEach(function(el) {
    el.addEventListener('click', function() {
      console.log('[Analytics] Clicked: ' + (el.textContent || el.href));
      // Replace with your own tracker call, e.g. gtag('event', ...)
    });
  });
})();

10الأمان والقيود#

⚡ يزيل document-start ترويسات Content-Security-Policy للصفحة المطابقة. استخدمه فقط على مواقع تملكها أو تثق بها صراحةً.

🔒 سياسة المصدر نفسه (Same-Origin Policy): لا يمكن لـ JS الوصول إلى إطارات iframe من مصادر أخرى (PayPal وStripe وتسجيل الدخول عبر Google). يفرض ذلك محرك المتصفح ولا يمكن تجاوزه.

📵 HTTPS فقط: واجهات مثل تحديد الموقع أو الكاميرا في السكربتات المحقونة تتطلب HTTPS.

✅ حماية من التشغيل المزدوج: كل سكربت محمي بعلامة على window ليعمل مرة واحدة فقط في كل صفحة.

✅ يعمل دون إنترنت: تعمل Smart User Scripts أيضًا في تطبيقات ZIP المضمّنة التي تعمل دون إنترنت.

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

تمت المراجعة مقابل الدليل المُرفق بتاريخ 2026-10-22.