هذا الكود يسهل على المستخدم تحديد النص لنسخة، فمجرد النقر على زر "انسخ" سيتم نسخ مربع النص او الكود او أي امر كان الى الحافظة، مما يمنح للزائر اريحية عند استخدام الموقع. وهذا شرح بالتفصيل لكيفية عمل كود النسخ؟
زر عند النقر علية يتم نسخ النص كذلك حركة بسيطة هي عند النقر على الزر يظهر انه تم النسخ وهذا سيتم في الجافا سكربت.
الشرح في البداية تم عمل صندوق div يحتوي على النص يمكنك من عمل صندوق لإدخال النص او وسم تريد تنسخ النص منه.
وتم عمل id معرف له، ليتم استدعائه في الكود التالي:
هنا تم وضع زر عند النقر عليه يتم استدعاء المعرف id السابق وهو div النص المراد نسخة وضعه كمعامل او ما يسمى محدد parameter للدالة " CopyToClipboard " نسخ النص للحافظة، طبعا الاسم اختياري يمكن اختيار ما شئت.
شرح كود جافا سكربت
هنا في الجافا سكربت تم استدعاء الدالة السابقة مع المحدد وهو النص الموجود داخل مربع div والنصوص او الأوامر داخل الدالة تطبق عند حدث الضغط.
في هذا الكود تم عمل range أي انشاء نطاق والمقصود بالنطاق هنا، عند تحديد النص بالماوس أي تظليل النص لعمل نسخ له او قص وغيرها، وكذلك الهواتف عند اللمس مطولا على الكلمة المراد نسخها حيث يتم تضليل النص ويسمى بداية النص ونهايته بالنطاق، بعد انشاء النطاق في السطر الثاني تم تحديد العنصر الذي سيكون هو النطاق وهذا سيكون عنصر ال div سابقا الموجود فيه النص
هنا تم عمل selection أي عمل تحديد للنص في السطر الثاني يتم عمل فحص بحيث هذا الفحص يلغي أي تحديد سابق او موجود على صفحة الانترنت ثم يتم إضافة النطاق الجديد للتحديد.
بعد عمل كود النسخ سيعمل معك بشكل طبيعي جدا وسيتم نسخ النصوص كل مرة تنقر على الزر نسخ، الان خطرت فكرة انه حين ما يتم نسخ النص يظهر الى الزائر انه تم النسخ وهذه الأوامر كالتالي:
السطر الأول يتم استدعاء النص الموجود داخل الزر وهو " نسخ" وهو النص الأصلي لذلك سميته المتغير " orginal"، السطر الثاني قمت بإنشاء متغير نوعه نص بحيث يتم كتابه هذا النص في الزر كما هو في السطر الثالث. وسيتم تغير النص عند النقر على الزر.
الان أصبح لدينا مشكله، ليست مشكله وانما سيتغير اسم الزر الى الاسم الجديد "تم النسخ" وسيظل هكذا حتى نسوي تحديث refresh لصفحة الانترنت، ولإعادته الى النص الأصلي سيتم عمل دالة تسمى "setTimeout" وهي معنية بالتعامل مع الزمن.
أخيرا ماذا لوكان لدينا العديد من النصوص والأزرار بحيث لكل زر معين يتم نسخ النص الذي يحتويه، بمعنى كود جافا سكربت واحد للجميع الازرار داخل الصفحة، ادعك مع الكود للتأمل فيه.
إذا تريد معرفة شيء عن السابق الكود يمكنك من السؤال في التعليق!
المصادر
التمساح
https://alligator.io/
كود HTML سوف نضع النص المراد نسخة.
كود JavaScript
الشرح في البداية تم عمل صندوق div يحتوي على النص يمكنك من عمل صندوق لإدخال النص او وسم تريد تنسخ النص منه.
وتم عمل id معرف له، ليتم استدعائه في الكود التالي:
هنا تم وضع زر عند النقر عليه يتم استدعاء المعرف id السابق وهو div النص المراد نسخة وضعه كمعامل او ما يسمى محدد parameter للدالة " CopyToClipboard " نسخ النص للحافظة، طبعا الاسم اختياري يمكن اختيار ما شئت.
Input | |
---|---|
عند النقر على العنصر "زر" يتم تطبيق ما بداخل الدالة function * | onclick |
النوع وهنا نوعه زر button وهناك العديد من الأنواع مثل checkbox، radio وغيرها | type |
وهذه تظهر النص داخل الزر | value |
هنا وضع نص معين id لاستدعائه لاحقا عند الحاجة الية في الجافا سكربت او CSS | id |
شرح كود جافا سكربت
هنا في الجافا سكربت تم استدعاء الدالة السابقة مع المحدد وهو النص الموجود داخل مربع div والنصوص او الأوامر داخل الدالة تطبق عند حدث الضغط.
الاحداث في الجافا سكربت Events in JavaScript.
هناك العشرات من الاحداث في الجافا سكربت وأشهرها هو حدث الضغط event onclick وكل له استخداماته الخاصة وهي مسماة بحسب الاسم مثل حدث الضغط وعند مرور الماوس onmouseover وخروجه وعند تحميل الصفحة onload صفحة الويب ويمكن من عمل دوال لها لتعمل العديد من الأشياء مثل التأثيرات على الصفحة Animation او العناصر Elements.في هذا الكود تم عمل range أي انشاء نطاق والمقصود بالنطاق هنا، عند تحديد النص بالماوس أي تظليل النص لعمل نسخ له او قص وغيرها، وكذلك الهواتف عند اللمس مطولا على الكلمة المراد نسخها حيث يتم تضليل النص ويسمى بداية النص ونهايته بالنطاق، بعد انشاء النطاق في السطر الثاني تم تحديد العنصر الذي سيكون هو النطاق وهذا سيكون عنصر ال div سابقا الموجود فيه النص
هنا تم عمل selection أي عمل تحديد للنص في السطر الثاني يتم عمل فحص بحيث هذا الفحص يلغي أي تحديد سابق او موجود على صفحة الانترنت ثم يتم إضافة النطاق الجديد للتحديد.
الفرق بين النطاق والتحديد range vs selection؟
النطاق حيث يتم تحديد البداية والنهاية للنص المراد نسخة بينما التحديد يتم وضع ظل ازرق حوله، بحيث تأتي الدالة execCommand ليتم نسخ ذلاك النص.الدالة execCommand()؟
هذه الدالة ليست فقط للنسخ وهي تعمل مثل الزر الأيمن لنظام الويندوز بحيث تحتوي على أوامر النسخ واللصق والحذف وجعل النص عريض وغيرها من الأوامر.بعد عمل كود النسخ سيعمل معك بشكل طبيعي جدا وسيتم نسخ النصوص كل مرة تنقر على الزر نسخ، الان خطرت فكرة انه حين ما يتم نسخ النص يظهر الى الزائر انه تم النسخ وهذه الأوامر كالتالي:
السطر الأول يتم استدعاء النص الموجود داخل الزر وهو " نسخ" وهو النص الأصلي لذلك سميته المتغير " orginal"، السطر الثاني قمت بإنشاء متغير نوعه نص بحيث يتم كتابه هذا النص في الزر كما هو في السطر الثالث. وسيتم تغير النص عند النقر على الزر.
الان أصبح لدينا مشكله، ليست مشكله وانما سيتغير اسم الزر الى الاسم الجديد "تم النسخ" وسيظل هكذا حتى نسوي تحديث refresh لصفحة الانترنت، ولإعادته الى النص الأصلي سيتم عمل دالة تسمى "setTimeout" وهي معنية بالتعامل مع الزمن.
شرح دالة setTimeout()؟
هذه الدالة تأخذ محددان tow parameter المحدد الأول دالة function وهنا في هذه المثال يتم ارجاع القيمة الاصلية "نسخ" بعد زمن معين من النقر على الزر وهذا الزمن يحدد بالمعامل الثاني parameter وقيمته 1200 وكل 1000 ألف تساوي ثانية واحدة.أخيرا ماذا لوكان لدينا العديد من النصوص والأزرار بحيث لكل زر معين يتم نسخ النص الذي يحتويه، بمعنى كود جافا سكربت واحد للجميع الازرار داخل الصفحة، ادعك مع الكود للتأمل فيه.
عندما أضغط على الزر لا يطبع لي تم النسخ
ردحذفإرسال تعليق