حدث DOM
أحداث نموذج كائن المستند (DOM) هي إشارة إلى وقوع حدث ما، أو أنه جارٍ، ويمكن أن تُفعَّل من خلال تفاعلات المستخدم أو المتصفح. [ 1 ] تستطيع لغات البرمجة النصية من جانب العميل ، مثل JavaScript و JScript و VBScript و Java، تسجيل معالجات أو مستمعات أحداث متنوعة على عقد العناصر داخل شجرة DOM ، كما هو الحال في مستندات HTML و XHTML و XUL و SVG .
أمثلة على أحداث DOM:
- عندما ينقر المستخدم بالماوس
- عند تحميل صفحة الويب
- عند تحميل الصورة
- عندما يتحرك مؤشر الماوس فوق عنصر ما
- عند تغيير حقل الإدخال
- عند إرسال نموذج HTML
- عندما يضغط المستخدم على مفتاح [ 2 ]
تاريخياً، وكما هو الحال مع نموذج كائن المستند (DOM)، كانت نماذج الأحداث المستخدمة من قبل متصفحات الويب المختلفة تتضمن اختلافات جوهرية تسببت في مشاكل التوافق. ولمعالجة هذه المشكلة، قام اتحاد شبكة الويب العالمية (W3C) بتوحيد نموذج الأحداث في المستوى الثاني من نموذج كائن المستند (DOM Level 2).
الفعاليات
أحداث HTML
الأحداث الشائعة
توجد مجموعة ضخمة من الأحداث التي يمكن توليدها بواسطة معظم عقد العناصر:
- أحداث الفأرة . [ 3 ] [ 4 ]
- أحداث لوحة المفاتيح .
- أحداث إطار/كائن HTML.
- أحداث نماذج HTML.
- أحداث واجهة المستخدم.
- أحداث التغيير (إخطار بأي تغييرات في بنية المستند).
- أحداث التقدم [ 5 ] (تستخدم بواسطة XMLHttpRequest و File API [ 6 ] ).
لاحظ أن تصنيف الحدث أعلاه ليس مطابقًا تمامًا لتصنيف W3C.
| فئة | يكتب | يصف | وصف | فقاعات | قابل للإلغاء |
|---|---|---|---|---|---|
| فأرة | انقر | انقر | يتم إطلاق هذا الحدث عند النقر بزر جهاز التأشير فوق عنصر ما. يُعرَّف النقر بأنه الضغط على زر الماوس ثم رفعه فوق نفس الموقع على الشاشة. تسلسل هذه الأحداث هو:
| نعم | نعم |
| dblclick | انقر نقرًا مزدوجًا | يتم تشغيلها عند النقر المزدوج على زر جهاز التأشير فوق عنصر ما | نعم | نعم | |
| الضغط على زر الماوس | عند الضغط على زر الماوس | يتم تشغيله عند الضغط على زر جهاز التأشير فوق عنصر ما | نعم | نعم | |
| رفع الماوس | onmouseup | يتم إطلاقها عند تحرير زر جهاز التأشير فوق عنصر ما | نعم | نعم | |
| مرر مؤشر الماوس | عند تمرير مؤشر الماوس | يتم إطلاقها عند تحريك جهاز التأشير فوق عنصر ما | نعم | نعم | |
| mousemove [ 7 ] | عند تحريك الماوس | يتم إطلاقها عند تحريك جهاز التأشير أثناء وجوده فوق عنصر ما | نعم | نعم | |
| إخراج الماوس | onmouseout | يتم إطلاق النار عند تحريك جهاز التأشير بعيدًا عن عنصر ما | نعم | نعم | |
| دراجستارت | بدء تشغيل السحب | يتم تشغيلها على عنصر عند بدء عملية السحب. | نعم | نعم | |
| يجر | أوندراغ | يتم إطلاق هذا الحدث عند مصدر السحب، أي العنصر الذي تم فيه إطلاق حدث السحب، أثناء عملية السحب. | نعم | نعم | |
| دراغنتر | ondragenter | يتم تشغيلها عند تحريك الماوس فوق عنصر ما لأول مرة أثناء عملية السحب. | نعم | نعم | |
| رحيل سريع | أوندراغليف | يتم إطلاق هذا الحدث عندما يغادر مؤشر الماوس عنصرًا ما أثناء عملية السحب. | نعم | لا | |
| دراغ أوفر | ondragover | يتم إطلاق هذا الحدث عند تحريك الماوس فوق عنصر ما أثناء عملية السحب. | نعم | نعم | |
| يسقط | أوندروب | يتم إطلاق حدث الإفلات على العنصر الذي يحدث فيه الإفلات في نهاية عملية السحب. | نعم | نعم | |
| دراجيند | أوندراغند | سيتلقى مصدر السحب حدث dragend عند اكتمال عملية السحب، سواء نجحت أم لا. | نعم | لا | |
| لوحة المفاتيح | مفتاح الضغط | أونكي داون | يتم تشغيلها قبل الضغط على المفتاح، عند الضغط على مفتاح في لوحة المفاتيح. | نعم | نعم |
| ضغطة مفتاح | ضغطة مفتاح | يتم تشغيلها بعد الضغط على مفتاح، عند الضغط على مفتاح في لوحة المفاتيح. | نعم | نعم | |
| رفع المفاتيح | onkeyup | يتم تشغيله عند تحرير مفتاح على لوحة المفاتيح | نعم | نعم | |
| إطار HTML / كائن | حمولة | تحميل | يتم تشغيل هذا الحدث عندما ينتهي برنامج المستخدم من تحميل جميع المحتويات داخل المستند، بما في ذلك النوافذ والإطارات والكائنات والصور. بالنسبة للعناصر، يتم تشغيلها عندما ينتهي تحميل العنصر المستهدف وجميع محتوياته | لا | لا |
| تفريغ الشحنة | عند التفريغ | يتم تشغيل هذا الحدث عندما يقوم برنامج المستخدم بإزالة جميع المحتويات من نافذة أو إطار. بالنسبة للعناصر، يتم تشغيلها عند إزالة العنصر المستهدف أو أي من محتوياته. | لا | لا | |
| إجهاض | إجهاض | يتم تشغيل هذا الإجراء عندما يتم إيقاف تحميل كائن/صورة قبل اكتمال تحميلها. | نعم | لا | |
| خطأ | على الخطأ | يتم تشغيل هذا الخطأ عندما يتعذر تحميل كائن/صورة/إطار بشكل صحيح | نعم | لا | |
| تغيير الحجم | تغيير الحجم | يتم تشغيلها عند تغيير حجم عرض المستند | نعم | لا | |
| التمرير | التمرير | يتم تشغيلها عند تمرير عنصر أو عرض مستند | لا، باستثناء أن حدث التمرير على المستند يجب أن ينتقل إلى النافذة [ 8 ] | لا | |
| نموذج HTML | يختار | onselect | يتم تشغيل هذا الحدث عندما يحدد المستخدم نصًا في حقل نصي ، بما في ذلك حقل الإدخال وحقل النص. | نعم | لا |
| يتغير | التغيير | يتم تشغيل هذا الإجراء عندما يفقد عنصر تحكم التركيز على الإدخال ، وقد تم تعديل قيمته منذ اكتساب التركيز. | نعم | لا | |
| يُقدِّم | onsubmit | يتم تشغيلها عند تقديم نموذج | نعم | نعم | |
| إعادة ضبط | إعادة الضبط | يتم تشغيلها عند إعادة تعيين النموذج | نعم | لا | |
| ركز | التركيز | يتم تشغيل هذا الحدث عندما يحصل عنصر ما على التركيز إما عن طريق جهاز التأشير أو عن طريق التنقل باستخدام علامات التبويب | لا | لا | |
| ضبابية | ضبابية | يتم تشغيل هذا الحدث عندما يفقد عنصر ما التركيز إما عن طريق جهاز التأشير أو عن طريق التنقل باستخدام مفتاح Tab. | لا | لا | |
| واجهة المستخدم | التركيز | (لا أحد) | يشبه حدث التركيز في HTML، ولكن يمكن تطبيقه على أي عنصر قابل للتركيز | نعم | لا |
| التركيز على | (لا أحد) | يشبه حدث فقدان التركيز في HTML، ولكن يمكن تطبيقه على أي عنصر قابل للتركيز | نعم | لا | |
| DOMActivate | (لا أحد) | يشبه حدث أمر XUL. يتم تشغيله عند تنشيط عنصر ما، على سبيل المثال، من خلال نقرة بالماوس أو ضغطة مفتاح. | نعم | نعم | |
| الطفرة | تم تعديل شجرة DOM الفرعية | (لا أحد) | يتم تشغيلها عند تعديل الشجرة الفرعية | نعم | لا |
| DOMNodeInserted | (لا أحد) | يتم تشغيل هذا الحدث عند إضافة عقدة كعقدة فرعية لعقدة أخرى | نعم | لا | |
| تمت إزالة عقدة DOM | (لا أحد) | يتم تشغيل هذا الحدث عند إزالة عقدة من شجرة DOM | نعم | لا | |
| تمت إزالة عقدة DOM من المستند | (لا أحد) | يتم تشغيل هذا الإجراء عند إزالة عقدة من مستند. | لا | لا | |
| DOMNodeInsertedIntoDocument | (لا أحد) | يتم تشغيلها عند إدراج عقدة في مستند | لا | لا | |
| DOMAttrModified | (لا أحد) | يتم تشغيلها عند تعديل سمة ما | نعم | لا | |
| تم تعديل بيانات الشخصية DOMCharacterData | (لا أحد) | يتم تشغيلها عند تعديل بيانات الشخصية | نعم | لا | |
| تقدم | بدء التحميل | (لا أحد) | بدأ التقدم. | لا | لا |
| تقدم | (لا أحد) | جارٍ التنفيذ. بعد إرسال أمر بدء التحميل. | لا | لا | |
| خطأ | (لا أحد) | فشل التقدم. بعد إرسال آخر تقدم، أو بعد إرسال بدء التحميل إذا لم يتم إرسال التقدم. | لا | لا | |
| إجهاض | (لا أحد) | يتم إنهاء عملية التقدم. بعد إرسال آخر عملية تقدم، أو بعد إرسال بدء التحميل إذا لم يتم إرسال أي عملية تقدم. | لا | لا | |
| حمولة | (لا أحد) | تتم عملية التقدم بنجاح. بعد إرسال آخر عملية تقدم، أو بعد إرسال بدء التحميل إذا لم يتم إرسال عملية التقدم. | لا | لا | |
| محمل | (لا أحد) | توقف التقدم. بعد إرسال إحدى رسائل الخطأ أو الإلغاء أو التحميل. | لا | لا | |
تجدر الإشارة إلى أن الأحداث التي تبدأ أسماؤها بـ "DOM" غير مدعومة بشكل جيد حاليًا، ولهذا السبب ولأسباب أخرى تتعلق بالأداء، فقد تم إيقاف استخدامها من قِبل اتحاد شبكة الويب العالمية (W3C) في المستوى الثالث من DOM. يدعم متصفحا موزيلا وأوبرا أحداث DOMAttrModified و DOMNodeInserted و DOMNodeRemoved و DOMCharacterDataModified . بينما يدعم متصفحا كروم وسفاري هذه الأحداث، باستثناء DOMAttrModified .
فعاليات اللمس
تُولّد متصفحات الويب التي تعمل على الأجهزة التي تدعم اللمس ، مثل نظامي التشغيل iOS من Apple و Android من Google ، أحداثًا إضافية. [ 9 ] : §5.3
| فئة | يكتب | يصف | وصف | فقاعات | قابل للإلغاء |
|---|---|---|---|---|---|
| يلمس | بداية سريعة | يتم تشغيلها عند وضع إصبع على سطح اللمس/الشاشة. | نعم | نعم | |
| تاتشيند | يتم إطلاقها عند إزالة الإصبع من سطح اللمس/الشاشة. | نعم | نعم | ||
| اللمس والتحريك | يتم تشغيلها عند تحريك إصبع موضوع مسبقًا على الشاشة عبرها. | نعم | نعم | ||
| مركز اللمس | يتم تشغيلها عندما تنتقل نقطة اللمس إلى المنطقة التفاعلية المحددة بواسطة عنصر DOM. | نعم | نعم | ||
| إجازة سريعة | يتم تشغيلها عندما تتحرك نقطة اللمس خارج المنطقة التفاعلية المحددة بواسطة عنصر DOM. | نعم | نعم | ||
| إلغاء اللمس | يجب على وكيل المستخدم إرسال هذا النوع من الأحداث للإشارة إلى انقطاع نقطة اللمس بطريقة خاصة بالتنفيذ، مثل التحرك خارج حدود نافذة وكيل المستخدم. كما يجوز لوكيل المستخدم إرسال هذا النوع من الأحداث عندما يضع المستخدم نقاط لمس (نقطة الإحداثيات التي يتقاطع عندها المؤشر (مثل الإصبع أو القلم) مع سطح واجهة المستخدم) على سطح اللمس أكثر مما هو مُهيأ للجهاز أو التنفيذ لتخزينه، وفي هذه الحالة يجب إزالة أقدم كائن نقطة لمس في قائمة اللمس. [ 9 ] : §5.9 | نعم | لا | ||
في مسودة توصية W3CTouchEvent ، يقدم عنصر `<div>` قائمة TouchListبالمواقع Touch، ومفاتيح التعديل التي كانت نشطة، وقائمة TouchListبالمواقع Touchداخل عنصر DOM المستهدف، وقائمة TouchListبالمواقع Touchالتي تغيرت منذ السابق TouchEvent. [ 9 ]
لم تنضم شركة آبل إلى مجموعة العمل هذه، وأخرت توصية اتحاد شبكة الويب العالمية (W3C) بمواصفات أحداث اللمس الخاصة بها من خلال الكشف عن براءات الاختراع في وقت متأخر من عملية التوصية. [ 10 ]
أحداث المؤشر
قد تُولّد متصفحات الويب على الأجهزة المزودة بأنواع مختلفة من أجهزة الإدخال، بما في ذلك الفأرة ولوحة اللمس والقلم، أحداث إدخال مُدمجة. يستطيع المستخدمون معرفة نوع جهاز الإدخال الذي تم الضغط عليه، والزر الذي تم الضغط عليه، وقوة الضغط على الزر في حالة استخدام قلم اللمس. اعتبارًا من أكتوبر 2013، يدعم متصفحا إنترنت إكسبلورر 10 و11 هذه الميزة فقط. [ 11 ]
| فئة | يكتب | يصف | وصف | فقاعات | قابل للإلغاء |
|---|---|---|---|---|---|
| مؤشر | مؤشر لأسفل | مؤشر لأسفل | يتم إطلاقها عند تنشيط زر جهاز التأشير، أو الضغط عليه فوق عنصر ما. | نعم | نعم |
| نقطة لأعلى | onpointerup | يتم إطلاقها عند تحرير زر جهاز التأشير فوق عنصر ما | نعم | نعم | |
| إلغاء المؤشر | إلغاء المؤشر | يتم إطلاقها عندما يكون من غير المرجح أن يستمر جهاز التأشير في إنتاج حدث لأنه، على سبيل المثال، يتم استخدام الجهاز للتحريك/التكبير بعد حدث الضغط على المؤشر. | نعم | نعم | |
| تحريك المؤشر | onpointermove | يتم إطلاقها عند تحريك جهاز التأشير أثناء وجوده فوق عنصر ما | نعم | نعم | |
| مؤشر الماوس | onpointerover | يتم إطلاقها عند تحريك جهاز التأشير فوق عنصر ما | نعم | نعم | |
| مؤشر | onpointerout | يتم تشغيل هذا الحدث عند تحريك جهاز التأشير بعيدًا عن عنصر ما. كما يتم تشغيله أيضًا بعد رفع المؤشر بواسطة جهاز التأشير دون تحريك المؤشر فوقه، أو بعد | نعم | نعم | |
| مؤشر | onpointerenter | يتم تشغيلها عند تحريك جهاز التأشير فوق عنصر ما، أو عند الضغط على زر جهاز التأشير الذي لا يدعم التحويم فوق أحد العناصر التابعة له. | لا | نعم | |
| ورقة المؤشر | إجازة مؤشر | يتم تشغيلها عند تحريك جهاز التأشير بعيدًا عن عنصر ما، أو عند تحرير زر جهاز التأشير الذي لا يدعم التحويم فوق العناصر التابعة له. | لا | نعم | |
| التقاط المؤشر | التقاط المؤشر المفقود | يتم تشغيلها عند التقاط المؤشر بواسطة طريقة setPointerCapture. | نعم | لا | |
| التقاط المؤشر المفقود | التقاط المؤشر المفقود | يتم تشغيلها عند تحرير المؤشر بواسطة طريقة releasePointerCapture. | نعم | لا | |
فعاليات واجهة المستخدم المستقلة
لم يتم تطبيقها بشكل كامل بعد، لكن مجموعات عمل واجهة المستخدم المستقلة تسعى لمساعدة مطوري تطبيقات الويب على دعم أحداث تفاعل المستخدم القياسية دون الحاجة إلى التعامل مع أحداث تقنية مختلفة خاصة بالمنصة قد تتوافق معها. [ 12 ]
قد يكون تصميم واجهات مستخدم سهلة الاستخدام أمرًا صعبًا، خاصةً عند الأخذ في الاعتبار اختلاف أنماط تصميم واجهة المستخدم باختلاف منصات البرامج والأجهزة والمواقع الجغرافية، وإمكانية تخصيص هذه التفاعلات بشكل أكبر وفقًا للتفضيلات الشخصية. يعتاد المستخدمون على طريقة عمل الواجهة على أجهزتهم، وغالبًا ما تختلف واجهتهم المفضلة عن تلك التي يفضلها مطور تطبيق الويب.
على سبيل المثال، يحتاج مطورو تطبيقات الويب، الذين يرغبون في اعتراض نية المستخدم للتراجع عن الإجراء الأخير، إلى "الاستماع" لجميع الأحداث التالية:
- Control+Z على نظامي التشغيل ويندوز ولينكس.
- Command+Z على نظام التشغيل Mac OS X.
- أحداث الاهتزاز على بعض الأجهزة المحمولة.
سيكون من الأسهل الاستماع إلى طلب واحد موحد "للتراجع" عن الإجراء السابق.
| فئة | يكتب | وصف | فقاعات | قابل للإلغاء |
|---|---|---|---|---|
| طلب | طلب غير مطلوب | يشير هذا إلى رغبة المستخدم في "التراجع" عن الإجراء السابق. (قد يتم استبداله بواجهة مدير التراجع). | نعم | نعم |
| إعادة الطلب | يشير هذا إلى رغبة المستخدم في "إعادة" الإجراء الذي تم "التراجع" عنه سابقًا. (قد يتم استبداله بواجهة مدير التراجع). | نعم | لا | |
| توسيع الطلب | يشير إلى رغبة المستخدم في الكشف عن المعلومات في قسم مطوي (مثل أداة الكشف) أو عقدة فرعية في التسلسل الهرمي (مثل عرض الشجرة ). | نعم | نعم | |
| طلب الانهيار | يشير إلى رغبة المستخدم في إخفاء أو طي المعلومات في قسم موسع (مثل أداة الكشف) أو عقدة فرعية في التسلسل الهرمي (مثل عرض الشجرة). | نعم | نعم | |
| رفض الطلب | يشير إلى أن المستخدم يرغب في "إغلاق" العرض الحالي (على سبيل المثال إلغاء مربع حوار، أو إغلاق قائمة منبثقة). | نعم | نعم | |
| طلب الحذف | يشير هذا إلى أن المستخدم يريد بدء إجراء "حذف" على العنصر المحدد أو العرض الحالي. | نعم | نعم | |
| طلب التركيز | طلب التركيز الاتجاهي | يبدأ هذا الحدث عندما يرسل متصفح المستخدم طلب "تركيز اتجاهي" إلى تطبيق الويب. لا ينبغي لمطوري الويب استخدام أحداث طلب التركيز الاتجاهي أو التسجيل فيها عندما تكون أحداث التركيز والتشويش القياسية للمتصفح كافية. قد يؤدي استخدام هذه الأحداث دون داعٍ إلى انخفاض الأداء أو تجربة مستخدم سلبية. | نعم | نعم |
| طلب التركيز الخطي | يبدأ هذا الحدث عندما يرسل متصفح المستخدم طلب "تركيز خطي" إلى تطبيق الويب. لا ينبغي لمطوري الويب استخدام أحداث "التركيز الخطي" أو التسجيل فيها عندما تكون أحداث التركيز وفقدان التركيز القياسية في المتصفح كافية. هذا النوع من الأحداث ضروري فقط في أنواع عناصر التحكم المتخصصة، مثل جداول البيانات، حيث قد لا يكون العنصر التالي المنطقي قابلاً للتركيز، أو حتى في نموذج كائن المستند (DOM)، إلا عند طلبه. قد يؤدي استخدام هذه الأحداث دون داعٍ إلى انخفاض الأداء أو تجربة مستخدم سلبية. | نعم | نعم | |
| طلب تركيز لوحة الألوان | يبدأ هذا الحدث عندما يرسل برنامج المستخدم طلب "تركيز اللوحة" إلى تطبيق الويب. يجب على مطوري تطبيقات الويب الذين يتلقون هذا الحدث نقل التركيز إلى اللوحة الأولى في تطبيق الويب، أو التبديل بين جميع اللوحات المتاحة. ملاحظة: تُعرف اللوحات أحيانًا باسم مربعات الحوار غير المشروطة أو نوافذ الفحص. | نعم | نعم | |
| طلب تركيز شريط الأدوات | يبدأ هذا الحدث عندما يرسل برنامج المستخدم طلب "تركيز شريط الأدوات" إلى تطبيق الويب. يجب على مطوري تطبيقات الويب الذين يتلقون هذا الحدث نقل التركيز إلى شريط الأدوات الرئيسي في تطبيق الويب، أو التبديل بين جميع أشرطة الأدوات المتاحة. | نعم | نعم | |
| طلب التلاعب | طلب نقل | يتم بدء هذه العملية عندما يرسل برنامج المستخدم طلب نقل إلى تطبيق الويب مصحوبًا بقيم دلتا س/ص. ويُستخدم هذا، على سبيل المثال، عند نقل عنصر إلى موقع جديد على لوحة التخطيط. | نعم | نعم |
| طلب بان | يبدأ هذا الإجراء عندما يرسل برنامج المستخدم طلب تحريك إلى تطبيق الويب مع قيم دلتا س/ص المصاحبة. ويُستخدم هذا، على سبيل المثال، عند تغيير نقطة المركز أثناء تحريك خريطة أو أي عارض صور مخصص آخر. | نعم | نعم | |
| طلب تدوير | يتم بدء العملية عندما يرسل وكيل المستخدم طلب تدوير إلى تطبيق الويب مع قيم x/y الأصلية المصاحبة وقيمة التدوير بالدرجات. | نعم | نعم | |
| طلب تكبير/تصغير | يتم بدء العملية عندما يرسل وكيل المستخدم طلب تكبير/تصغير إلى تطبيق الويب مع قيم x/y الأصلية المصاحبة وعامل مقياس التكبير/التصغير. | نعم | نعم | |
| طلب التمرير | طلب التمرير | يبدأ هذا الحدث عندما يرسل برنامج المستخدم طلب تمرير إلى تطبيق الويب مصحوبًا بقيم دلتا x/y أو إحدى قيم scrollType الأخرى المحددة. يجب على المطورين استخدام هذا الحدث و uiaction فقط مع طرق عرض التمرير المخصصة. | نعم | نعم |
| طلب تغيير القيمة | طلب تغيير القيمة | يتم بدء هذه العملية عندما يرسل برنامج المستخدم طلب تغيير قيمة إلى تطبيق الويب. وتُستخدم في عناصر التحكم ذات النطاق المخصص مثل أشرطة التمرير، والشرائح الدوارة، وما إلى ذلك. | نعم | نعم |
أحداث خاصة بمتصفح إنترنت إكسبلورر
بالإضافة إلى أحداث (W3C) الشائعة، يضيف متصفح إنترنت إكسبلورر نوعين رئيسيين من الأحداث . وقد تم تطبيق بعض هذه الأحداث كمعايير فعلية من قبل متصفحات أخرى.
- أحداث الحافظة .
- أحداث ربط البيانات.
| فئة | يكتب | يصف | وصف | فقاعات | قابل للإلغاء |
|---|---|---|---|---|---|
| لوحة كتابة | يقطع | قص | يتم إطلاق النار بعد قص عنصر محدد إلى الحافظة. | نعم | نعم |
| ينسخ | نسخة | يتم إطلاق النار بعد نسخ التحديد إلى الحافظة. | نعم | نعم | |
| لصق | ملصق | يتم إطلاق النار بعد لصق عنصر محدد من الحافظة. | نعم | نعم | |
| قبل القطع | onbeforecut | يتم إطلاق النار قبل قص التحديد إلى الحافظة. | نعم | نعم | |
| قبل النسخ | قبل النسخ | يتم إطلاق النار قبل نسخ التحديد إلى الحافظة. | نعم | نعم | |
| قبل اللصق | onbeforepaste | يتم إطلاق النار قبل لصق التحديد من الحافظة. | نعم | نعم | |
| ربط البيانات | بعد التحديث | onafterupdate | يتم تشغيلها فور تحديث كائن مرتبط بالبيانات. | نعم | لا |
| قبل التحديث | onbeforeupdate | يتم إطلاق النار قبل تحديث مصدر البيانات. | نعم | نعم | |
| تغيير الخلية | تغيير الخلية | يتم تشغيلها عند تغيير مصدر البيانات. | نعم | لا | |
| البيانات المتاحة | البيانات متاحة | يتم تشغيلها عند توفر بيانات جديدة من مصدر بيانات. | نعم | لا | |
| تم تغيير مجموعة البيانات | ondatasetchanged | يتم تشغيلها عند تغيير المحتوى في مصدر البيانات. | نعم | لا | |
| مجموعة البيانات كاملة | اكتمال مجموعة البيانات | يتم تشغيلها عند اكتمال نقل البيانات من مصدر البيانات. | نعم | لا | |
| تحديث الخطأ | تحديث عند الخطأ | يتم تشغيل النظام في حالة حدوث خطأ أثناء تحديث حقل البيانات. | نعم | لا | |
| رونتر | مدخل | يتم تشغيلها عند توفر صف جديد من البيانات من مصدر البيانات. | نعم | لا | |
| رو إكسيت | مخرج | يتم تشغيلها عندما تنتهي معالجة صف من البيانات من مصدر البيانات. | لا | نعم | |
| حذف الصفوف | onrowsdelete | يتم تشغيلها عند حذف صف من البيانات من مصدر البيانات. | نعم | لا | |
| تم إدراج الصف | أُدرج في الصف | يتم تشغيلها عند إدخال صف من البيانات من مصدر البيانات. | نعم | لا | |
| فأرة | قائمة السياق | قائمة السياق | يتم تشغيلها عند عرض قائمة السياق. | نعم | نعم |
| يجر | أوندراغ | يتم تشغيلها أثناء سحب الماوس (على العنصر المتحرك). | نعم | نعم | |
| دراجستارت | بدء تشغيل السحب | يتم تشغيلها عند بدء سحب الماوس (على العنصر المتحرك). | نعم | نعم | |
| دراغنتر | ondragenter | يتم إطلاق النار عندما يتم سحب شيء ما إلى منطقة (على العنصر المستهدف). | نعم | نعم | |
| دراغ أوفر | ondragover | يتم إطلاق النار عند سحب المؤشر فوق منطقة معينة (على العنصر المستهدف). | نعم | نعم | |
| رحيل سريع | أوندراغليف | يتم إطلاق النار عندما يتم سحب شيء ما خارج منطقة معينة (على العنصر المستهدف). | نعم | نعم | |
| دراجيند | أوندراغند | يتم تشغيلها عند انتهاء سحب الماوس (على العنصر المتحرك). | نعم | نعم | |
| يسقط | أوندروب | يتم تشغيلها عند تحرير زر الماوس فوق هدف صالح أثناء السحب (على العنصر المستهدف). | نعم | نعم | |
| بداية | onselectstart | يتم تشغيلها عندما يبدأ المستخدم في تحديد النص. | نعم | نعم | |
| لوحة المفاتيح | يساعد | onhelp | يتم تشغيلها عندما يبدأ المستخدم في طلب المساعدة. | نعم | نعم |
| إطار/كائن HTML | قبل التفريغ | onbeforeunload | يتم إطلاقها قبل تفريغ المستند. | لا | نعم |
| قف | توقف | يتم تشغيل هذا الحدث عندما يتوقف المستخدم عن تحميل الكائن. (على عكس حدث الإلغاء، يمكن ربط حدث الإيقاف بالمستند) | لا | لا | |
| نموذج HTML | قبل التحرير التركيز | onbeforeeditfocus | يتم إطلاق النار قبل أن يكتسب عنصر ما التركيز اللازم للتحرير. | نعم | نعم |
| سرادق | يبدأ | بدء التشغيل | يتم تشغيلها عندما تبدأ لافتة العرض حلقة جديدة. | لا | لا |
| ينهي | عند الانتهاء | يتم تشغيلها عند اكتمال عملية إعادة عرض الشاشة. | لا | نعم | |
| ارتداد | الارتداد | يتم تشغيلها عندما ترتد شاشة التمرير في الاتجاه الآخر. | لا | نعم | |
| متنوع | قبل الطباعة | قبل الطباعة | يتم إطلاق النار قبل طباعة المستند | لا | لا |
| بعد الطباعة | بعد الطباعة | يتم تشغيلها فور طباعة المستند. | لا | لا | |
| تغيير الملكية | تغيير الملكية | يتم تشغيلها عند تغيير خاصية كائن ما. | لا | لا | |
| تغيير الفلتر | تغيير الفلتر | يتم تشغيلها عندما يغير المرشح خصائصه أو ينهي عملية انتقال. | لا | لا | |
| تغيير الحالة الجاهز | onreadystatechange | يتم تشغيلها عند تغيير خاصية readyState لعنصر ما. | لا | لا | |
| التقاط غير محكم | التقاط مفقود | يتم تشغيلها عند استدعاء طريقة releaseCapture. | لا | لا | |
تجدر الإشارة إلى أن متصفحات موزيلا وسفاري وأوبرا تدعم أيضًا حدث readystatechange لكائن XMLHttpRequest . كما يدعم موزيلا حدث beforeunload باستخدام طريقة تسجيل الأحداث التقليدية (مستوى DOM 0). يدعم كل من موزيلا وسفاري قائمة السياق، بينما لا يدعمها متصفح إنترنت إكسبلورر لنظام ماك.
لاحظ أن فايرفوكس 6 والإصدارات الأحدث تدعم أحداث الطباعة المسبقة والطباعة اللاحقة.
فعاليات XUL
بالإضافة إلى أحداث (W3C) الشائعة، حددت موزيلا مجموعة من الأحداث التي تعمل فقط مع عناصر XUL .
| فئة | يكتب | يصف | وصف | فقاعات | قابل للإلغاء |
|---|---|---|---|---|---|
| فأرة | تمرير الماوس DOMMouseScroll | تمرير الماوس DOMMouseScroll | يتم تشغيلها عند تحريك عجلة الماوس، مما يؤدي إلى تمرير المحتوى. | نعم | نعم |
| سحب وإسقاط | انقلاب | يتم تشغيلها عندما يحرر المستخدم زر الماوس لإسقاط كائن يتم سحبه . | لا | لا | |
| دراغنتر | ondragenter | يتم تشغيل هذا الحدث عندما يتحرك مؤشر الماوس فوق عنصر ما لأول مرة أثناء السحب. وهو مشابه لحدث التمرير فوق العنصر، ولكنه يحدث أثناء السحب. | لا | لا | |
| اسحب للخارج | ondragexit | يتم استدعاء هذا الحدث عندما يتحرك مؤشر الماوس بعيدًا عن عنصر أثناء السحب. كما يتم استدعاؤه أيضًا بعد إفلات العنصر. وهو مشابه لحدث mouseout ولكنه يحدث أثناء السحب. | لا | لا | |
| سحب الإيماءة | إيماءة | يتم تشغيلها عندما يبدأ المستخدم في سحب العنصر، عادةً عن طريق الضغط باستمرار على زر الماوس وتحريك الماوس. | لا | لا | |
| دراغ أوفر | ondragover | فيما يتعلق بحدث تحريك الماوس، يتم تشغيل هذا الحدث أثناء سحب شيء ما فوق عنصر ما. | لا | لا | |
| مدخل | تغيير حالة مربع الاختيار | يتم تشغيلها عند تحديد خانة الاختيار أو إلغاء تحديدها، سواء من قبل المستخدم أو من خلال برنامج نصي. | لا | لا | |
| تغيير حالة الراديو | يتم تشغيلها عند تحديد زر الاختيار، سواء من قبل المستخدم أو من خلال برنامج نصي. | لا | لا | ||
| يغلق | إغلاق | يتم تشغيلها عند تقديم طلب لإغلاق النافذة. | لا | نعم | |
| يأمر | عند الطلب | يشبه حدث DOMActivate الخاص بـ W3C. يتم تشغيله عند تنشيط عنصر ما، على سبيل المثال، من خلال النقر بالماوس أو الضغط على مفتاح. | لا | لا | |
| مدخل | إدخال | يتم تشغيلها عندما يقوم المستخدم بإدخال نص في مربع نص. | نعم | لا | |
| واجهة المستخدم | DOMMenuItemActive | DOMMenuItemActive | يتم تشغيلها عند تمرير مؤشر الماوس فوق قائمة أو عنصر قائمة ، أو عند تمييزه. | نعم | لا |
| DOMMenuItemInactive | DOMMenuItemInactive | يتم تشغيلها عندما لا يتم تحريك مؤشر الماوس فوق قائمة أو عنصر قائمة، أو عندما لا يتم تمييزه. | نعم | لا | |
| قائمة السياق | قائمة السياق | يتم تشغيل هذا الإجراء عندما يطلب المستخدم فتح قائمة السياق الخاصة بالعنصر. يختلف الإجراء المطلوب للقيام بذلك باختلاف النظام الأساسي، ولكنه عادةً ما يكون النقر بزر الماوس الأيمن. | لا | نعم | |
| فيضان | فيضان | يقوم بتشغيل مربع أو عنصر تخطيط آخر عندما لا تكون هناك مساحة كافية لعرضه بالحجم الكامل. | لا | لا | |
| تم تغيير الفائض | تم تغيير التدفق الزائد | يتم إطلاقها عند تغير حالة تجاوز السعة. | لا | لا | |
| التدفق السفلي | onunderflow | يتم إطلاق النار على عنصر ما عندما تتوفر مساحة كافية لعرضه بالحجم الكامل. | لا | لا | |
| popuphidden | onpopuphidden | يُطلق نافذة منبثقة بعد إخفائها. | لا | لا | |
| إخفاء النوافذ المنبثقة | إخفاء النافذة المنبثقة | يتم تشغيل نافذة منبثقة عندما تكون على وشك الاختفاء. | لا | لا | |
| عرض نافذة منبثقة | onpopupshowing | يتم تشغيل نافذة منبثقة قبل فتحها مباشرة. | لا | نعم | |
| نافذة منبثقة تظهر | onpopupshown | يتم إرسال حدث إلى نافذة منبثقة بعد فتحها، تمامًا كما يتم إرسال حدث التحميل إلى نافذة عند فتحها. | لا | لا | |
| يأمر | إذاعة | بث مباشر | يتم وضع هذا الحدث على جهاز مراقبة. ويتم إرسال حدث البث عند تغيير خصائص جهاز البث الذي يتم الاستماع إليه. | لا | لا |
| تحديث الأمر | تحديث الأمر | يتم تشغيلها عند حدوث تحديث للأمر. | لا | لا | |
فعاليات أخرى
في متصفحي موزيلا وأوبرا 9، توجد أيضًا أحداث غير موثقة تُعرف باسم DOMContentLoaded و DOMFrameContentLoaded، والتي يتم تشغيلها عند تحميل محتوى DOM. تختلف هذه الأحداث عن حدث "load" لأنها تُشغّل قبل تحميل الملفات ذات الصلة (مثل الصور). ومع ذلك، تمت إضافة حدث DOMContentLoaded إلى مواصفات HTML 5. [ 13 ] كما تم تطبيق حدث DOMContentLoaded في محرك عرض Webkit الإصدار 500 وما بعده. [ 14 ] [ 15 ] يتوافق هذا مع جميع إصدارات جوجل كروم وسفاري 3.1 وما بعده . كما تم تطبيق حدث DOMContentLoaded في إنترنت إكسبلورر 9. [ 16 ]
يدعم Opera 9 أيضًا أحداث Web Forms 2.0 التالية: DOMControlValueChanged و invalid و forminput و formchange .
تدفق الأحداث
لنفترض أن هدفين للأحداث يشاركان في شجرة . كلاهما لديه مستمعون للأحداث مسجلون على نفس نوع الحدث، ولنقل "نقرة". عندما ينقر المستخدم على العنصر الداخلي، هناك طريقتان محتملتان للتعامل مع ذلك:
- يتم تشغيل العناصر من الخارج إلى الداخل (التقاط الأحداث). تم تطبيق هذا النموذج في متصفح نتسكيب نافيجاتور .
- يتم تشغيل العناصر من الداخل إلى الخارج ( انتشار الأحداث ). يتم تطبيق هذا النموذج في متصفح إنترنت إكسبلورر ومتصفحات أخرى. [ 17 ]
تتخذ منظمة W3C موقفاً وسطاً في هذا الصراع. [ 18 ] : §1.2
وفقًا لـ W3C، تمر الأحداث بثلاث مراحل عندما يشارك هدف الحدث في شجرة:
- مرحلة الالتقاط: ينتقل الحدث من هدف الحدث الجذري إلى هدف الحدث
- المرحلة المستهدفة: ينتقل الحدث عبر هدف الحدث
- مرحلة الفقاعة ( اختيارية ): ينتقل الحدث عائدًا من هدف الحدث إلى هدف الحدث الجذري. تحدث مرحلة الفقاعة فقط للأحداث التي تتصاعد (حيث
event.bubbles == true)
يمكنك الاطلاع على رسم توضيحي لتدفق هذا الحدث على الرابط التالي: https://domevents.dev
إيقاف الأحداث
أثناء انتقال حدث ما عبر أجهزة الاستماع للأحداث، يمكن إيقاف الحدث بواسطة event.stopPropagation()أوevent.stopImmediatePropagation()
event.stopPropagation()يتم إيقاف الحدث بعد انتهاء جميع مستمعي الأحداث المرتبطين بهدف الحدث الحالي في مرحلة الحدث الحالية.event.stopImmediatePropagation()يتم إيقاف الحدث فورًا ولا يتم تنفيذ أي مستمعين آخرين للأحداث
عند إيقاف حدث ما، فإنه لن يستمر في مساره. إيقاف حدث ما لا يعني إلغاءه.
آليات قديمة لإيقاف حدث ما
- اضبطه
event.cancelBubbleعلىtrue(إنترنت إكسبلورر) - اضبط
event.returnValueالخاصية علىfalse
إلغاء الفعاليات
cancelableيمكن إلغاء حدث ما عن طريق استدعاء الدالة المناسبة . event.preventDefault()سيؤدي إلغاء الحدث إلى تعطيل سلوك المتصفح الافتراضي لهذا الحدث. عند إلغاء الحدث، event.defaultPreventedسيتم تعيين الخاصية إلى قيمة فارغة true. لن يؤدي إلغاء الحدث إلى إيقاف مساره.
كائن الحدث
يُوفّر كائن الحدث معلوماتٍ كثيرة حول حدثٍ مُعيّن، بما في ذلك معلومات حول العنصر المُستهدف، والمفتاح المُضغوط، وزر الفأرة المُضغوط، وموضع الفأرة، وما إلى ذلك. لسوء الحظ، توجد مشاكل توافق خطيرة بين المتصفحات في هذا المجال. لذا، يقتصر هذا المقال على مناقشة كائن الحدث الخاص بـ W3C.
| اسم | يكتب | وصف |
|---|---|---|
| يكتب | سلسلة DOM | اسم الحدث (غير حساس لحالة الأحرف في مستوى DOM 2 ولكنه حساس لحالة الأحرف في مستوى DOM 3 [ 19 ] ). |
| هدف | هدف الحدث | يُستخدم للإشارة إلى هدف الحدث الذي تم إرسال الحدث إليه في الأصل. |
| الهدف الحالي | هدف الحدث | يُستخدم للإشارة إلى هدف الحدث الذي تتم معالجة مستمعي الأحداث الخاصة به حاليًا. |
| مرحلة الحدث | قصير غير موقع | يُستخدم للإشارة إلى المرحلة التي يتم تقييمها حاليًا من تدفق الأحداث. |
| فقاعة | منطقي | يُستخدم للإشارة إلى ما إذا كان الحدث حدثًا متصاعدًا أم لا. |
| قابل للإلغاء | منطقي | يُستخدم للإشارة إلى ما إذا كان من الممكن منع الإجراء الافتراضي لحدث ما أم لا. |
| الطابع الزمني | DOMTimeStamp | يُستخدم لتحديد الوقت (بالمللي ثانية بالنسبة إلى الحقبة) الذي تم فيه إنشاء الحدث. |
| اسم | نوع الوسيط | اسم الوسيطة | وصف |
|---|---|---|---|
| إيقاف الانتشار | لمنع انتشار الحدث أثناء تدفق الأحداث. | ||
| منع الوضع الافتراضي | لإلغاء الحدث إذا كان قابلاً للإلغاء، مما يعني أن أي إجراء افتراضي يتم اتخاذه عادةً بواسطة التنفيذ نتيجة للحدث لن يحدث. | ||
| حدث التهيئة | سلسلة DOM | eventTypeArg | يحدد نوع الحدث. |
| منطقي | canBubbleArg | يحدد ما إذا كان الحدث يمكن أن ينتشر أم لا. | |
| منطقي | cancelableArg | يحدد ما إذا كان من الممكن منع الإجراء الافتراضي للحدث أم لا. | |
نماذج التعامل مع الأحداث
مستوى DOM 0
تم تقديم نموذج معالجة الأحداث هذا بواسطة متصفح نتسكيب نافيغيتور ، ولا يزال النموذج الأكثر توافقًا مع مختلف المتصفحات حتى عام 2005.يوجد نوعان من النماذج : النموذج المدمج والنموذج التقليدي.
نموذج مضمن
في النموذج المضمن، تُضاف معالجات الأحداث [ 20 ] كسمات للعناصر. في المثال أدناه، يظهر مربع حوار تنبيه برسالة "مرحباً جو" بعد النقر على الرابط التشعبي . يتم إلغاء إجراء النقر الافتراضي بإرجاع القيمة "خطأ" في معالج الحدث.
<!doctype html><htmllang="en"><head><metacharset="utf-8"><title>Inline Event Handling</title></head><body><h1>Inline Event Handling</h1><p>Hey <ahref="http://www.example.com"onclick="triggerAlert('Joe'); return false;">Joe</a>!</p><script>functiontriggerAlert(name){window.alert("Hey "+name);}</script></body></html>One common misconception with the inline model is the belief that it allows the registration of event handlers with custom arguments, e.g. name in the triggerAlert function. While it may seem like that is the case in the example above, what is really happening is that the JavaScript engine of the browser creates an anonymous function containing the statements in the onclick attribute. The onclick handler of the element would be bound to the following anonymous function:
function(){triggerAlert('Joe');returnfalse;}This limitation of the JavaScript event model is usually overcome by assigning attributes to the function object of the event handler or by using closures.
Traditional model
In the traditional model,[21] event handlers can be added or removed by scripts. Like the inline model, each event can only have one event handler registered. The event is added by assigning the handler name to the event property of the element object. To remove an event handler, simply set the property to null:
< !doctype html> < html lang = " en" > <head> < meta charset = " utf - 8" > <title> معالجة الأحداث التقليدية < / title > </head><body> <h1> معالجة الأحداث التقليدية < / h1 ><p> مرحباً جو! < / p ><script> var triggerAlert = function () { window.alert ( " Hey Joe " ) ; }; // تعيين معالج حدث document.onclick = triggerAlert ; // تعيين معالج حدث آخر window.onload = triggerAlert ; // إزالة معالج الحدث الذي تم تعيينه للتو window.onload = null ; </script> </body> </html>لإضافة معلمات:
var name = 'Joe' ; document . onclick = ( function ( name ) { return function () { alert ( 'مرحباً ' + name + '!' ); }; }( name ));تحافظ الدوال الداخلية على نطاقها .
المستوى الثاني من إدارة العمليات
صممت منظمة W3C نموذجًا أكثر مرونة للتعامل مع الأحداث في DOM المستوى 2. [ 18 ]
| اسم | وصف | نوع الوسيط | اسم الوسيطة |
|---|---|---|---|
| إضافة مستمع للأحداث | يسمح بتسجيل مستمعي الأحداث على هدف الحدث. | سلسلة DOM | يكتب |
| مستمع الأحداث | المستمع | ||
| منطقي | استخدام الالتقاط | ||
| إزالة مستمع الحدث | يسمح بإزالة مستمعي الأحداث من هدف الحدث. | سلسلة DOM | يكتب |
| مستمع الأحداث | المستمع | ||
| منطقي | استخدام الالتقاط | ||
| حدث الإرسال | يسمح بإرسال الحدث إلى مستمعي الأحداث المشتركين. | حدث | evt |
بعض الأمور المفيدة التي يجب معرفتها :
- لمنع حدوث تصاعدي، يجب على المطورين استدعاء
stopPropagation()طريقة كائن الحدث. - لمنع استدعاء الإجراء الافتراضي للحدث، يجب على المطورين استدعاء طريقة
preventDefault()كائن الحدث.
يتمثل الاختلاف الرئيسي عن النموذج التقليدي في إمكانية تسجيل عدة معالجات أحداث لنفس الحدث. useCaptureكما يمكن استخدام هذا الخيار لتحديد استدعاء المعالج في مرحلة الالتقاط بدلاً من مرحلة الانتشار. يدعم هذا النموذج متصفحات Mozilla و Opera و Safari و Chrome و Konqueror .
إعادة صياغة للمثال المستخدم في النموذج التقليدي
< ! doctype html> < html lang = " en" > <head> < meta charset = " utf - 8" > <title> DOM المستوى 2 </title> </head><body> <h1> DOM المستوى 2 </h1><p> مرحباً جو! < / p ><script> var heyJoe = function () { window.alert ( " مرحباً جو !" ); } // إضافة معالج حدث document.addEventListener ( " click" , heyJoe , true ) ; // مرحلة الالتقاط // إضافة معالج حدث آخر window.addEventListener ( " load" , heyJoe , false ) ; // مرحلة الانتشار // إزالة معالج الحدث الذي تمت إضافته للتو window.removeEventListener ( " load " , heyJoe , false ) ; </script></body> </html>نموذج خاص بمتصفح إنترنت إكسبلورر
لا يتبع متصفح مايكروسوفت إنترنت إكسبلورر، قبل الإصدار 8، نموذج W3C، إذ تم إنشاء نموذجه الخاص قبل اعتماد معيار W3C. ويتبع إنترنت إكسبلورر 9 أحداث DOM من المستوى 3، [ 22 ] بينما ألغى إنترنت إكسبلورر 11 دعمه لنموذج مايكروسوفت الخاص. [ 23 ]
| اسم | وصف | نوع الوسيط | اسم الوسيطة |
|---|---|---|---|
| إرفاق حدث | على غرار طريقة addEventListener الخاصة بـ W3C. | خيط | حدث |
| مؤشر | إشعار fp | ||
| حدث الفصل | على غرار طريقة W3C لإزالة مستمع الحدث. | خيط | حدث |
| مؤشر | إشعار fp | ||
| حدث حريق | على غرار طريقة dispatchEvent الخاصة بـ W3C. | خيط | حدث |
| حدث | كائن الحدث | ||
بعض الأمور المفيدة التي يجب معرفتها :
- لمنع انتشار الحدث، يجب على المطورين تعيين خاصية الحدث
cancelBubble. - لمنع استدعاء الإجراء الافتراضي للحدث، يجب على المطورين تعيين
returnValueخاصية الحدث. - تشير الكلمة
thisالمفتاحية إلىwindowالكائن العام.
مرة أخرى، يختلف هذا النموذج عن النموذج التقليدي في إمكانية تسجيل عدة معالجات أحداث لنفس الحدث. مع ذلك، useCaptureلا يمكن استخدام هذا الخيار لتحديد استدعاء المعالج في مرحلة الالتقاط. يدعم هذا النموذج متصفح مايكروسوفت إنترنت إكسبلورر والمتصفحات المبنية على ترايدنت (مثل ماكسثون وأفانت براوزر).
إعادة كتابة المثال المستخدم في النموذج القديم الخاص بمتصفح إنترنت إكسبلورر
< ! doctype html> < html lang = " en " > <head> < meta charset = "utf-8" > <title> نموذج خاص بمتصفح إنترنت إكسبلورر </ title > </head> <body> <h1> نموذج خاص بمتصفح إنترنت إكسبلورر < / h1 ><p> مرحباً جو! < / p ><script> var heyJoe = function () { window.alert ( " مرحباً جو !" ) ; } // إضافة معالج حدث document.attachEvent ( "onclick" , heyJoe ) ; // إضافة معالج حدث آخر window.attachEvent ( "onload" , heyJoe ) ; // إزالة معالج الحدث الذي تمت إضافته للتو window.detachEvent ( " onload " , heyJoe ) ; </script></body> </html>مراجع
- ↑ "معيار DOM" . dom.spec.whatwg.org . تم الاطلاع عليه بتاريخ 25-05-2021 .
- ↑ "أحداث DOM في جافا سكريبت" . www.w3schools.com . تم الاطلاع عليه بتاريخ 3 أغسطس 2019 .
- ↑ "7.8 السحب والإفلات - HTML5" .
- ↑ "واجهة برمجة تطبيقات السحب والإفلات لـ HTML" . 28 مارس 2024.
- ↑ "أحداث التقدم" .
- ↑ "واجهة برمجة تطبيقات الملفات" .
- ↑ "عنصر: حدث تحريك الماوس - واجهات برمجة تطبيقات الويب | MDN" . 22 ديسمبر 2023.
- ↑ "مواصفات أحداث المستوى 3 لنموذج كائن المستند (DOM) (مسودة عمل)" . W3C . تم الاطلاع عليه بتاريخ 17-04-2013 .
- 1 2 3 "أحداث اللمس، الإصدار 2 - مسودة محرر W3C" . W3C. 14 نوفمبر 2011. تم الاطلاع عليه بتاريخ 10 ديسمبر 2011 .
- ↑ "أبل تستخدم براءات الاختراع لتقويض المعايير المفتوحة مجدداً" . opera.com. 9 ديسمبر 2011. تم الاطلاع عليه بتاريخ 9 ديسمبر 2011 .
- ↑ "أحداث المؤشر" .
- ↑ "IndieUI: Events 1.0" .
- ↑ "معيار HTML" .
- ↑أُرشف بتاريخ 11 يونيو 2010 في أرشيف الإنترنت (Wayback Machine) .
- ↑ «ما هي المتصفحات التي تدعم حدث DOMContentLoaded الأصلي؟» « نصائح تطوير من مختبرات بيرفكشن» . 29 يونيو 2011. مؤرشف من الأصل في 29 يونيو 2011.
{{cite web}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط ) - ↑ "إعادة توجيه تجربة القيادة" . مؤرشف من الأصل بتاريخ 2010-05-08 . تم الاطلاع عليه بتاريخ 2010-05-06 .
- ↑ "مقدمة عن الفعاليات" . Quirksmode.org . تم الاطلاع عليه بتاريخ 15 سبتمبر 2012 .
- 1 2 "مواصفات أحداث المستوى الثاني لنموذج كائن المستند (DOM)" . W3C . 13 نوفمبر 2000. تم الاطلاع عليه في 15 سبتمبر 2012 .
- ↑ "مواصفات أحداث المستوى 3 لنموذج كائن المستند (DOM) (مسودة عمل)" . W3C . تم الاطلاع عليه بتاريخ 17-04-2013 .
- ↑ "معالجات الأحداث المبكرة" . Quirksmode.org . تم الاطلاع عليه بتاريخ 15 سبتمبر 2012 .
- ↑ "نموذج تسجيل الفعاليات التقليدي" . Quirksmode.org . تم الاطلاع عليه بتاريخ 15 سبتمبر 2012 .
- ↑ "دعم أحداث المستوى الثالث من DOM في IE9" . مايكروسوفت . 26 مارس 2010. تم الاطلاع عليه بتاريخ 28 مارس 2010 .
- ↑ "تغييرات التوافق في معاينة IE11" . مايكروسوفت . 9 سبتمبر 2013. تم الاطلاع عليه بتاريخ 5 أكتوبر 2013 .
للمزيد من القراءة
- ديتل، هارفي. (2002). الإنترنت والشبكة العنكبوتية العالمية: كيفية البرمجة (الطبعة الثانية). ISBN 0-13-030897-8
- مؤسسة موزيلا. (2009). مرجع أحداث DOM . تم الاسترجاع في 25 أغسطس 2009.
- Quirksmode (2008). جداول توافق الأحداث . تم الاطلاع عليه بتاريخ 27 نوفمبر 2008.
- http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/
روابط خارجية
- مواصفات أحداث المستوى الثاني من نموذج كائن المستند (DOM)
- مسودة عمل أحداث المستوى الثالث من نموذج كائن المستند (DOM)
- DOM4: الأحداث (مسودة المحرر)
- مسودة عمل أحداث واجهة المستخدم
- توصيات مرشحي أحداث المؤشر من W3C
- حدث مؤشر MSDN
- domevents.dev - أداة عرض مرئية للتعرف على أحداث DOM من خلال الاستكشاف
- مثال توضيحي لتقنية JS fiddle لظاهرة تصاعد الأحداث والتقاطها
- معايير اتحاد شبكة الويب العالمية
- واجهات برمجة التطبيقات
- الأحداث (الحوسبة)
