إنتقل إلى المحتوى الرئيسي

كتلة البيانات الوصفية

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

// ==UserScript==
// @name New Userscript
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @description try to take over the world!
// @author You
// @crontab * * once * *
// ==/UserScript==

القيم الرئيسية​

name​

اسم السكرپت

namespace​

مساحة اسم السكرپت. يحدد name + namespace تفرد السكرپت.

version​

إصدار السكرپت. يُنصح باتباع التحكم الدلالي بالإصدارات، بحيث عند اكتشاف تغيير في الإصدار، يُطلب من المستخدم التحديث، وهكذا.

description​

وصف تفصيلي للسكرپت

author​

مؤلف السكرپت

run-at​

متى يعمل السكرپت

القيمةوقت التشغيلمدعوم منذ
document-startيحقن السكرپت في الصفحة بمجرد تطابق الرابط من الواجهة الأماميةv0.3.0
document-endيحقن السكرپت بعد اكتمال تحميل الـ DOM؛ قد تكون سكرپتات الصفحة والصور ما زالت قيد التحميل في هذه المرحلةv0.3.0
document-idleيحقن السكرپت بعد اكتمال تحميل جميع المحتوياتv0.3.0
document-bodyيتم حقن السكرپت فقط بمجرد أن تحتوي الصفحة على عنصر bodyv0.6.2
document-menuيعرض قائمة عند النقر بزر الماوس الأيمن؛ تشغيل السكرپت يستخدم اسم السكرپت كاسم القائمةv0.3.4-v0.9.4 (🔥 تمت إزالته)

لأيقونات القوائم، يمكنك الرجوع إلى رموز Unicode والرموز التعبيرية.

run-in​

يحدد البيئة التي يُحقن فيها السكرپت: @run-in normal-tabs للتبويبات العادية، @run-in incognito-tabs لتبويبات التصفح الخاص.

early-start (v1.1.0+)​

عندما يكون run-at هو document-start، يعمل السكرپت في أقرب وقت ممكن، لكنه لا يزال لا يستطيع ضمان تحميل أسرع من الصفحة.

بمجرد تعريف @run-at document-start، يمكنك إضافة @early-start لجعل السكرپت يُحمَّل أسرع من الصفحة: مثال

inject-into​

تلميح

في بيئة content-script (content)، يشير unsafeWindow فقط إلى window الحالي للبيئة نفسها، ولا يمكنه الوصول إلى window الخاص بالصفحة.

لا يدعم ScriptCat الفحص التلقائي لقيود CSP لتحديد ما إذا كان سيتم الحقن كـ content أو page (أي @inject-into auto الخاص بـ Tampermonkey).

يحدد أين يتم حقن السكرپت، ويدعم page و content، والافتراضي هو page.

  • page: يُحقن السكرپت في بيئة الصفحة، ويمكنه استخدام unsafeWindow للوصول إلى window وDOM الخاصين بالصفحة
  • content: يُحقن السكرپت في بيئة content-script، ولا يمكنه الوصول مباشرة إلى كائن window الخاص بالصفحة، لكن يمكنه الوصول إلى DOM الخاص بالصفحة، ولا يخضع لـ CSP

storageName 🧪​

مساحة التخزين لـ Value؛ يمكن مشاركة البيانات تحت نفس storageName والتواصل بين السكرپتات. هذه ميزة خاصة بـ ScriptCat.

background​

يميز هذا السكرپت كسكرپت خلفية، يحتاج إلى التشغيل في بيئة الخلفية. راجع سكرپت الخلفية للتفاصيل.

crontab​

يميز السكرپت كسكرپت مجدول، ويتطلب قيمة تعبير cron. يمكن أن يوجد تعبير cron واحد فقط، ويعمل وفقاً لهذا الجدول في بيئة الخلفية. راجع السكرپت المجدول للتفاصيل.

match​

فقط الروابط المطابقة لـ match هي التي تشغل السكرپت، باتباع أنماط المطابقة. في match، * هو حرف بدل، tld يطابق النطاق الأعلى، والنطاق الذي يبدأ بـ *. سيطابق أيضاً xxx.com:

القيمةأمثلة صحيحةأمثلة غير صحيحة
http://scriptcat.org/doc/matchhttp://scriptcat.org/doc/matchhttp://scriptcat.org/doc/runAt
*://*/param?*https://scriptcat.org/param | http://scriptcat.org/param?search=tampermonkeyhttps://scriptcat.org/test/param
*://*/prefix*suffixhttp://scriptcat.org/prefix/suffix | http://scriptcat.org/prefix/mid/suffix | http://scriptcat.org/prefixsuffixhttp://scriptcat.org/prefix/suffix/end
http*://scriptcat.org/*https://scriptcat.org/ | https://scriptcat.org/doc | http://scriptcat.org/doc/match | http://scriptcat.org/param?search=tampermonkeyhttps://doc.scriptcat.org/
http*://scriptcat.org/doc/*https://scriptcat.org/doc | http://scriptcat.org/doc/matchhttp://scriptcat.org/param?search=tampermonkey
http*://scriptcat.tld/doc/*https://scriptcat.cn/doc | http://scriptcat.net.cn/doc/matchhttp://google.com/param?search=tampermonkey
http*://*.scriptcat.org/doc/*https://scriptcat.cn/doc | http://www.scriptcat.net.cn/doc/matchhttp://google.com/param?search=tampermonkey

include​

يدعم \* للمطابقة الضبابية، مما يسمح بروابط غير قياسية

exclude​

روابط لا يجب أن تطابق؛ يستخدم نفس صيغة التعبير الخاصة بـ include

grant​

يطلب إذن واجهة برمجة — لا يمكن استدعاء واجهة برمجة إلا بعد طلبها. راجع قائمة الأذونات في: وثائق واجهة البرمجة ووثائق CAT API.

قيمتان خاصتان:

  • none: لا يعمل السكرپت في بيئة معزولة (sandbox)، بل مباشرة في بيئة الصفحة. في هذه البيئة، لا تتوفر أي واجهات GM APIs، لكن يمكن الوصول مباشرة إلى كائن window الخاص بالصفحة.
  • unsafeWindow: في بيئة المعزل، إذا كنت بحاجة إلى الوصول إلى كائن window الخاص بالصفحة، استخدم unsafeWindow للقيام بذلك. (لا يتطلب Tampermonkey التصريح عنه — وهو محتفظ به فقط للتوافق، وهو أمر غير نظيف اعترافاً)

connect​

يطلب إذن الوصول إلى موقع؛ راجع GM_cookie و GM_xmlhttpRequest. GM_download في وضع native يحترم أيضاً @connect (المضيفات غير المصرح عنها تثير طلب تأكيد، على عكس Tampermonkey)

resource​

يتضمن ملف مورد. بعد التصريح عن @resource، يمكنك استخدام GM_getResourceText/GM_getResourceURL لاسترجاع المعلومات.

// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico
// @resource html https://bbs.tampermonkey.net.cn/
// @resource xml https://bbs.tampermonkey.net.cn/sitemap.xml
// Adding resource integrity verification
// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico#md5-xxx,sha256-xxx

require​

يتضمن ملف JS خارجي؛ يدعم التحقق من سلامة الموارد

require-css​

يتضمن ملف CSS خارجي؛ يدعم التحقق من سلامة الموارد

noframes​

يميز السكرپت بأنه لا يعمل داخل <frame>

definition​

عنوان مرجع لملف .d.ts، مما يتيح تلميحات الإكمال التلقائي في المحرر

antifeature​

هذا متعلق بسوق السكرپتات؛ يجب تمييز الميزات غير المرغوبة بقيمة الوصف هذه، على سبيل المثال:

// @antifeature ads This script has ads
// @antifeature referral-link This script modifies or redirects to the author's referral link

قيم وصف إضافية​

license​

ترخيص المصدر المفتوح للسكرپت الحالي

updateURL​

يتطلب فحص التحديث أن يحتوي السكرپت البعيد على وسم @version لكي يسري مفعوله.

الرابط الذي يستخدمه السكرپت للتحقق من التحديثات؛ إذا لم يُضبط، فإنه يقترض تلقائياً user.js => meta.js من الرابط، أو الرابط الحالي إذا لم يوجد user.js.

إذا تم تكوين @updateURL، فيجب أيضاً تكوين @downloadURL لكي يسري مفعول @updateURL.

downloadURL​

عنوان تنزيل تحديث السكرپت

supportURL​

موقع الدعم، صفحة الإبلاغ عن الأخطاء

homepage, homepageURL, website​

الصفحة الرئيسية للسكرپت

source​

صفحة الكود المصدري للسكرپت

icon, iconURL, defaulticon​

أيقونة السكرپت

icon64, icon64URL​

أيقونة السكرپت بحجم 64x64

معلومات حقوق النشر للسكرپت

tag​

وسوم السكرپت، مفصولة بفواصل أو مسافات

compatible​

معلومات التوافق المعروضة على GreasyFork

scriptUrl​

رابط سكرپت المستخدم الذي يشير إليه سكرپت الاشتراك

unwrap​

يجعل سكرپت المستخدم يتجاوز تغليف المعزل ويُحقن ويُنفذ مباشرة في النطاق العام الأصلي للصفحة. يمكن للسكرپت الوصول مباشرة وتعديل المتغيرات العامة الحقيقية للصفحة، لكنه لن يتمكن من استخدام واجهات البرمجة المميزة لسكرپتات المستخدم مثل GM.*. يُستخدم عادةً في السيناريوهات التي تتطلب تفاعلاً عميقاً مع سكرپتات الصفحة الأصلية، أو عند ترحيل سكرپت صفحة عادي موجود.

cloudCat​

يميز السكرپت بأنه قابل للتصدير إلى حزمة سكرپت سحابية CloudCat (SC فقط)

cloudServer​

خدمة CloudCat السحابية التي يستخدمها السكرپت

exportValue​

قيم تخزين السكرپت للتصدير عند التصدير كسكرپت سحابي

exportCookie​

كوكيز للتصدير عند التصدير كسكرپت سحابي

ملاحظات​

التحقق من سلامة الموارد​

  • استخدم md5 أو sha1 أو sha256 أو sha384 أو sha512 للتحقق من الموارد ضد العبث. يمكن فصل طرق التحقق المتعددة بـ ; أو ,.
  • وفقاً لـ توصيات W3C، لا يُنصح باستخدام md5 و sha1؛ استخدم sha384 أو خوارزمية تجزئة أقوى بدلاً من ذلك.

على سبيل المثال:

// @require https://cdn.jsdelivr.net/npm/[email protected]/lib/darkmode-js.min.js#md5-d55836f30c097da753179f82fa6f108f,sha256-a476ab8560837a51938aa6e1720c8be87c2862b6221690e9de7ffac113811a90