الإجراءات والأحداث
Important: this documentation is not applicable to your currently selected format email!
يتم استخدام السمة on
لتثبيت معالجات الحدث في العناصر. إذ تعتمد الأحداث المدعومة على العنصر.
القيمة لبناء الجملة عبارة عن لغة بسيطة محددة بالمجال خاصة بالنموذج:
eventName:targetId[.methodName[(arg1=value, arg2=value)]]
راجع الجدول أدناه لتوصيفات كل جزء من بناء الجملة.
بناء الجملة | مطلوب؟ | الوصف |
---|---|---|
eventName | نعم | اسم الحدث الذي يظهره العنصر. |
targetId | نعم | هذا هو معرّف نموذج كائن المستند للعنصر، أو هدف خاص محدد مسبقًا تريد تنفيذ إجراء عليه ردًا على الحدث. في المثال التالي، targetId هو معرف نموذج كائن المستند للهدف amp-lightbox ،photo-slides . <amp-lightbox id = "photo-slides"> </amp-lightbox> <button on = "tap: photo-slides">Show Images</button> |
methodName | لا | هذا للعناصر التي تتضمن إجراءات افتراضية. وهذه هي الطريقة التي يقوم بها العنصر الهدف (مشار إليه من قبل وتتضمن AMP مفهومًا للإجراء الافتراضي الذي يمكن للعناصر تنفيذه. لذا عند حذف |
arg=value | لا | قد تقبل بعض الإجراءات الوسيطات، إذا كانت موثَّقة. ويتم تحديد الوسيطات بين هلالين في ترقيم key=value . وتكون القيم المقبولة عبارة عن:
|
معالجة أحداث متعددة
يمكنك الاستماع إلى أحداث متعددة في عنصر من خلال فصل الأحداث بفاصلة منقوطة ;
.
مثال: on="submit-success:lightbox1;submit-error:lightbox2"
إجراءات متعددة لحدث واحد
يمكنك تنفيذ الإجراءات بتسلسل للحدث نفسه من خلال فصل الإجراءات بفاصلة "،".
مثال: on="tap:target1.actionA,target2.actionB"
الأحداث والإجراءات المحددة عالميًا
يحدد AMP حدث tap
عالميًا بحيث يمكنك الاستماع إلى أحد عناصر HTML (بما في ذلك عناصر AMP).
كما أن AMP يحدد أيضًا إجراءات hide
، وshow
وtoggleVisibility
عالميًا التي يمكنك تشغيلها في أي عنصر HTML.
يمكن إظهار عنصر إذا كان مخفيًا مسبقًا عن طريق الإجراء hide
أو toggleVisibility
أو من خلال استخدام سمة hidden
. حيث إن إجراء show
لا يدعم العناصر المخفية عن طريق CSS display:none
أو layout=nodisplay
الخاصة بـ AMP.
على سبيل المثال، ما يلي ممكن في AMP:
<div id="warning-message">Warning...</div> <button on="tap:warning-message.hide">Cool, thanks!</button>
الأحداث المحددة بالعنصر
* - كل العناصر
الحدث | الوصف |
---|---|
tap | التشغيل عند النقر فوق/الضغط على العنصر. |
عناصر الإدخال
الحدث | الوصف | العناصر | البيانات |
---|---|---|---|
change | التشغيل عند تغيير قيمة العنصر وتنفيذها. وتعكس خصائص البيانات تلك الأشياء في HTMLInputElement وHTMLSelectElement. | input | event.min |
input[type="radio"] ,input[type="checkbox"]
| event.checked | ||
select | event.min | ||
input-debounced | التشغيل عند تغيير قيمة العنصر. وهذا مماثل لحدث change القياسي، لكنه يقوم بعملية التشغيل فقط عند مرور 300 مللي ثانية بعد توقف تغيير قيمة الإدخال. | العناصر التي تشغِّل حدث input . | مماثل لبيانات حدث change . |
input-throttled | التشغيل عند تغيير قيمة العنصر. وهذا مماثل لحدث change القياسي، لكن تتم عملية التقييد من أجل التشغيل مرة واحدة على الأكثر كل 100 مللي ثانية أثناء تغيير قيمة الإدخال. | العناصر التي تشغِّل حدث input . | مماثل لبيانات حدث change . |
amp-accordion > قسم
الحدث | الوصف | البيانات |
---|---|---|
expand | التشغيل عن تمديد قسم أكورديون. | لا يوجد. |
collapse | التشغيل عند طي قسم أكوروديون. | لا يوجد. |
amp-carousel[type="slides"]
الحدث | الوصف | البيانات |
---|---|---|
slideChange | التشغيل عند تغيير شريحة المكتبة الحالية. | // Slide number. |
amp-lightbox
الحدث | الوصف | البيانات |
---|---|---|
lightboxOpen | التشغيل عندما يكون lightbox مرئيًا بالكامل. | لا يوجد |
lightboxClose | التشغيل عدما يكون lightbox مغلقًا بالكامل. | لا يوجد |
amp-list
الحدث | الوصف | البيانات |
---|---|---|
changeToLayoutContainer | تحديث تخطيط amp-list إلى layout="CONTAINTER" للسماح بتغيير الحجم الديناميكي. | |
fetch-error (انخفاض مستوى الثقة) | التشغيل عند فشل إحضار البيانات. | لا يوجد |
amp-selector
الحدث | الوصف | البيانات |
---|---|---|
select | التشغيل عند تحديد أو إلغاء تحديد خيار. | // Target element's "option" attribute value. |
amp-sidebar
الحدث | الوصف | البيانات |
---|---|---|
sidebarOpen | التشغيل عندما يكون الشريط الجانبي مفتوح بالكامل بعد انتهاء النقل. | لا يوجد |
sidebarClose | التشغيل عندما يكون الشريط الجانبي مغلق بالكامل بعد انتهاء النقل. | لا يوجد |
amp-state
الحدث | الوصف | البيانات |
---|---|---|
fetch-error (انخفاض مستوى الثقة) | التشغيل عند فشل إحضار البيانات. | لا يوجد |
amp-video, amp-youtube
الحدث | الوصف | البيانات |
---|---|---|
firstPlay (منخفض الثقة) | التشغيل في المرة الأولى التي يتم فيها تشغيل الفيديو. في مقاطع الفيديو التي يتم تشغيلها تلقائيًا، يتم تشغيله بمجرد تفاعل المستخدم مع الفيديو. وهذا الحدث منخفض الثقة مما يعني عدم إمكانية تشغيل معظم الإجراءات؛ يمكن فقط تشغيل الإجراءات منخفضة الثقة مثل إجراءات amp-animation . | |
timeUpdate (منخفضة الثقة) | التشغيل عند تغيير موضع تشغيل مقطع الفيديو. ويتم التحكم في تردد الحدث بواسطة AMP ويتم ضبطه حاليًا على فترات زمنية تبلغ 1 ثانية. وهذا الحدث منخفض الثقة مما يعني عدم إمكانية تشغيل معظم الإجراءات؛ يمكن فقط تشغيل الإجراءات منخفضة الثقة مثل إجراءات amp-animation . | يشير {time, percent} time إلى الوقت الحالي بالثواني، أما percent عبارة عن رقم بين 0 و1 ويشير إلى الموضع الحالي كنسبة للوقت الإجمالي. |
النموذج
الحدث | الوصف | البيانات |
---|---|---|
submit | التشغيل عند إرسال النموذج. | |
submit-success | Fired when the form submission response is success. | // Response JSON. |
submit-error | التشغيل عند وجود خطأ في استجابة إرسال النموذج. | // Response JSON. |
valid | التشغيل عندما يكون النموذج صالحًا. | |
invalid | التشغيل عندما يكون النموذج غير صالح. |
الإجراءات المحددة بالعنصر
* (كل العناصر)
الإجراء | الوصف |
---|---|
hide | إخفاء العنصر الهدف. |
show | إظهار العنصر الهدف، إذا أصبح عنصر autofocus مرئيًا كنتيجة لذلك، فإنه يكتسب التركيز. |
toggleVisibility | تبديل رؤية العنص الهدف. إذا أصبح عنصر autofocus مرئيًا كنتيجة لذلك، فإنه يكتسب التركيز. |
toggleClass(class=STRING, force=BOOLEAN) | تبديل فئة العنصر الهدف. حيث إن force اختياري، وفي حالة التحديد؛ يضمن إضافة الفئة فقط لكن من دون إزالتها في حالة التعيين إلى true ، والإزالة فقط من دون إضافة في حالة التعيين إلى false . |
scrollTo(duration=INTEGER, position=STRING) | لتمرير عنصر للعرض باستخدام حركة سلسة. duration اختياري. يحدد طول الحركة بالمللي ثانية. إذا لم يتم تحديد ذلك، فسيتم استخدام مبلغ متعلق بفرق التمرير أقل أو يساوي 500 مللي ثانية. position اختياري. أحد top ، center أو bottom (افتراضي top ). لتحديد موضع العنصر بالنسبة إلى منفذ العرض بعد التمرير. كأفضل ممارسة لإمكانية الوصول، قم بإقران هذا باستدعاء focus() للتركيز على العنصر الذي يتم التمرير إليه. |
focus | التسبب في إكساب العنصر الهدف للتركيز. لخسارة التركيز focus على عنصر آخر (عنصر أصل). إننا ننصح بشدة بعدفقدان التركيز على body /documentElement لأسباب تتعلق بإمكانية الوصول. |
amp-audio
الإجراء | الوصف |
---|---|
play | يشغل الصوت. وهو عبارة عن تعليمة غير فعالة إذا كان العنصر <amp-audio> تابعًا لـ <amp-story> . |
pause | يوقف الصوت مؤقتًا. وهو عبارة عن تعليمة غير فعالة إذا كان العنصر <amp-audio> تابعًا لـ <amp-story> . |
amp-bodymovin-animation
الإجراء | الوصف |
---|---|
play | تشغيل الرسوم المتحركة. |
pause | إيقاف تشغيل الرسوم المتحركة مؤقتًا. |
stop | إيقاف الرسوم المتحركة. |
seekTo(time=INTEGER) | تعيين الوقت الحالي للرسوم المتحركة على القيمة المحددة وإيقاف الرسوم المتحركة مؤقتًا. |
seekTo(percent=[0,1]) | استخدام قيمة النسبة المئوية المحددة لتحديد الوقت الحالي للرسوم المتحركة إلى القيمة المحددة وإيقاف الحركة مؤقتًا. |
amp-accordion
الإجراء | الوصف |
---|---|
toggle(section=STRING) | تبديل الحالات expanded وcollapsed الخاصة بالأقسام amp-accordion . عند الاستدعاء من دون وسيطات، يقوم بتدبيل كل الأقسام القابلة للطي. قم بتشغيل قسم معين من خلال توفير معرِّف القسم: on="tap:myAccordion.toggle(section='section-id')" . |
expand(section=STRING) | توسيع الأقسام الخاصة بالأكورديون. إذا تم توسيع القسم بالفعل، فسيظل موسعًا. وعندما يتم استدعاؤه بدون وسيطات، فإنه يقوم بتوسيع كل أقسام الأكورديون. قم بتشغيل قسم معين من خلال توفير معرِّف القسم: on="tap:myAccordion.expand(section='section-id')" . |
collapse(section=STRING) | طي أقسام الأكورديون. إذا كان القسم مطويًا بالفعل، فإنه يظل مطويًا. وعندما يتم استدعاؤه بدون وسيطات، فإنه يقوم بطي كل أقسام الأكورديون. قم بتشغيل قسم معين من خلال توفير معرِّف القسم: on="tap:myAccordion.collapse(section='section-id')" . |
amp-carousel[type="slides"]
الإجراء | الوصف |
---|---|
goToSlide(index=INTEGER) | تقدم المكتبة إلى فهرس شرائح محدد. |
toggleAutoplay(toggleOn=true|false) | تبديل حالة التشغيل التلقائي للمكتبة. toggleOn اختياري. |
amp-image-lightbox
الإجراء | الوصف |
---|---|
open (default) | فتح lightbox للصورة مع كون الصورة المصدر هي التي أدت إلى تشغيل الإجراء. |
amp-lightbox
الإجراء | الوصف |
---|---|
open (default) | فتح lightbox. |
close | إغلاق lightbox. |
amp-lightbox-gallery
الإجراء | الوصف |
---|---|
open | فتح معرض Lightbox. إذ يمكن تشغيله عن طريق النقر فوق عنصر آخر، إذا قمت بتحديد معرِّف الصورة: `on="tap:amp-lightbox-gallery.open(id='image-id')"`. |
amp-list
الإجراء | الوصف |
---|---|
refresh | تحديث البيانات من src وإعادة عرض القائمة. |
amp-live-list
الإجراء | الوصف |
---|---|
update (default) | تحديث عناصر DOM لعرض المحتوى المحدَّث. |
amp-selector
الإجراء | الوصف |
---|---|
clear | إزالة كل التحديدات من amp-selector محددة. |
selectUp(delta=INTEGER) | لنقل التحديد إلى أعلى حسب قيمة "دلتا". إذ يتم تعيين قيمة "دلتا" الافتراضية إلى -1. إذا لم يتم تحديد أي خيارات، فإن الحالة المحددة ستصبح قيمة الخيار الأخير. |
selectDown(delta=INTEGER) | لنقل التحديد إلى أسفل حسب قيمة "دلتا". إذ يتم تعيين قيمة "دلتا" الافتراضية إلى 1. إذا لم يتم تحديد أي خيارات، فإن الحالة المحددة ستصبح قيمة الخيار الأول. |
toggle(index=INTEGER, value=BOOLEAN) | تبديل التطبيق الخاص "بالمحدد". إذا كانت سمة التحديد غير موجودة، فإن هذا الإجراء يضيفها. وإذا كانت سمة التحديد موجودة، فإن هذا الإجراء يزيلها. ويمكنك فرض إضافة أو إزالة والاحتفاظ بها عن طريق تضمين قيمة منطقية في وسيطة "القيمة". وستفرض قيمة "صحيح" إضافة السمة "المحددة" وعدم إزالتها إذا كانت موجودة بالفعل. وستؤدي القيمة "خطأ" إلى إزالة السمة، ولكن لن تضيفها في حالة عدم وجودها. |
amp-sidebar
الإجراء | الوصف |
---|---|
open (default) | فتح الشريط الجانبي. |
close | إغلاق الشريط الجانبي. |
toggle | تبديل حالة الشريط الجانبي. |
amp-state
الإجراء | الوصف |
---|---|
refresh | تحديث البيانات عند السمة `src` أثناء تجاهل ذاكرة التخزين المؤقت للمتصفح. |
amp-user-notification
الإجراء | الوصف |
---|---|
dismiss (default) | إخفاء عنصر إشعار المستخدم المشار إليه. |
عناصر الفيديو
يتم دعم الإجراءات أدناه في عناصر فيديو AMP التالية: amp-video
، amp-youtube
، amp-3q-player
، amp-brid-player
، amp-dailymotion
، amp-delight-player
، amp-ima-video
.
الإجراء | الوصف |
---|---|
play | تشغيل الفيديو. |
pause | إيقاف تشغيل الفيديو مؤقتًا. |
mute | كتم صوت الفيديو. |
unmute | إلغاء كتم صوت الفيديو. |
fullscreencenter | تشغيل الفيديو في وضع ملء الشاشة. |
النموذج
الإجراء | الوصف |
---|---|
clear | إزالة كل القيم في إدخالات النموذج. |
submit | إرسال النموذج. |
الأهداف الخاصة
فيما يلي أهداف يوفرها نظام AMP لها متطلبات خاصة:
الهدف: AMP
يتم توفير هدف AMP
عن طريق وقت تشغيل AMP وإجراءات تنفيذ عالية المستوى من شأنها تطبيق المستند بأكمله.
الإجراء | الوصف |
---|---|
navigateTo(url=STRING, target=STRING, opener=BOOLEAN) | نقل النافذة الحالية إلى عنوان URL محدد، وذلك إلى الهدف المحدد الاختياري إذا تم توفيره (حاليًا يدعم تحذير: يوصى باستخدام روابط |
closeOrNavigateTo(url=STRING, target=STRING, opener=BOOLEAN) | محاولة إغلاق النافذة إذا كان مسموحًا، وخلاف ذلك يقوم بنقل المماثل إلى الإجراء تحذير: يوصى باستخدام روابط |
goBack | التنقل رجوعًا في السجل. |
print | فتح مربع حوار الطباعة من أجل طباعة الصفحة الحالية. |
scrollTo(id=STRING, duration=INTEGER, position=STRING) | للتمرير إلى معرف العنصر المقدم في الصفحة الحالية. |
optoutOfCid | رفض إنشاء معرِّف العميل لجميع النطاقات. |
setState({foo: 'bar'}) 1
| يتطلب amp-bind. دمج ثابت كائن في الحالة القابلة للربط. |
pushState({foo: 'bar'}) 1
| يتطلب amp-bind. دمج ثابت كائن في الحالة القابلة للربط ودفع إدخال جديد إلى مكدس سجل المتصفح. وسيؤدي عرض الإدخال إلى استعادة القيم السابقة للمتغيرات (في هذا المثال، |
1عند الاستخدام مع إجراءات متعددة، ستنتظر الإجراءات اللاحقة حتى اكتمال setState()
أو pushState()
قبل الطلب. ويسمح فقط بـ setState()
أو pushState()
لكل حدث.
Target: amp-access
يتم توفير الهدف amp-access
عن طريق المكون amp-access.
يكون الهدف amp-access
خاصًا للأسباب التالية:
- لا يمكنك تقديم معرِّف عشوائي لهذا الهدف. فالهدف دائمًا
amp-access
. - تعتمد الإجراءات لـ
amp-access
ديناميكيًا على تكوين وصول AMP.
راجع التفاصيل حول استخدام الهدف amp-access
.