اذهب إلى المحتوى

Anas Orfaly

الأعضاء
  • المساهمات

    25
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة Anas Orfaly

  1. بتاريخ 1 ساعة قال حمزة عباد:

    اللغات عالية المستوى (High-level languages) (لغات البرمجة الشهيرة كلّها عالية المستوى) تنقسم إلى مترجمة (مثال: C, C++) ومفسّرة (مثال: Python، JavaScript)، هذا صحيح. أمّا ما يسمى بلغة الآلة فهو في حقيقته نبضات كهربائيّة، يعني 0 يرمز لمستوى تيّار منخفض، و 1 يرمز لمستوى تيّار مرتفع (يمكنك أن تتخيّل كيف يمكن لشخص عادي أن يكتب برنامجا باللعب على مستويات التيّار!).

    بالنسبة لللغات المترجمة، فهذا ما يحصل بالفعل. وظيفة المترجم (Compiler) في اللغات المترجمة، إذ أنه يحوّل الكود إلى لغة آلة في النهاية لإنشاء ملف قابل للتنفيذ. بينما في اللغات المفسّرة، فالهدف منها هو جعل الكود نفسه يعمل على عدّة أنظمة تشغيل بدون تغيير، لذلك هي ليست مصمّمة لتصبح مترجمة إلى لغة الآلة، لأن الحواسيب تختلف في مواصفاتها وفي أنظمة التشغيل المثبتة عليها ونسخها، لذلك فالكود المترجم قد لا يعمل إلّا على جهاز بمواصفات محدّدة باستخدام نظام تشغيل محدد، بينما يستطيع الكود المفسّر أن يعمل على كثير من الحواسيب والأنظمة دون تغيير.

    هذا يعني أن الكود المترجم أسرع بمراحل من الكود المفسر، لأن الكود المفسر يتم قراءته من طرف مفسّر اللغة كل مرة قبل تنفيذه، بينما الكود المترجم صار مكتوبا بلغة الآلة ويتم تشغيله بشكل مباشر. لذلك، ظهرت مشاريع تحاول ترجمة الكود المفسّر إلى كود قابل للترجمة، مثل مشروع Cython الذي يسمح بترجمة ملفّات Python إلى ملفّات C قابلة للترجمة. هذه الطرق قد تعمل بشكل مثالي مع البرامج البسيطة لكنّها ستحتاج عملا أكثر في البرامج الكبيرة. بالإضافة إلى ذلك، توجد لغات حديثة مثل Dart أين يمكنك ترجمة الكود أو تشغيله بشكل مفسّر حسب الاختيار!

    1. إذا كان المقصود العودة من لغة الآلة إلى الكود البرمجي، فيوجد برامج من هذا النوع تعرف بعاكسات الترجمة (Decompiler). لكن عكس الترجمة ليس بالسهولة التي يبدو عليها. أثناء عمليّة الترجمة، يقوم المترجم بحذف جميع البيانات التي لا تحتاجها الآلة للعمل، مثل التعليقات، وأسماء المتغيّرات والدوال، وأسماء الملفّات، وغير ذلك الكثير! المترجم يقوم بهذا من أجل إنشاء ملفّات صغيرة قدر الإمكان. لذلك، عندما يحاول عاكس الترجمة القيام بالعمليّة العكسيّة، فلن يستطيع استعادة هذه المعلومات المفقودة، وسيقوم بتوليد بيانات عشوائيّة مكانها، مما يجعل الكود المعكوس مختلفا كثيرا عن الكود الأصلي، لذلك لا يمكن التعويل على هذا النوع من البرامج إلا في الحالات الضرورية ومن قبل المختصّين في الهندسة العكسيّة (Reverse engineering) وهذا لوحده علم آخر يجب دراسته لمن هو مهتم بهذا المجال.
    2. أمّا إذا كنت تقصد تحويل الكود بين لغات البرمجة المختلفة، فهذا أيضا ممكن في الحالات البسيطة، وقد سهّلت أدوات الذكاء الاصطناعي القيام بهذه المهمّة، فيمكن لهذه الأدوات أن تقوم بتحويل الكود من لغة إلى أخرى بسرعة. لكننا هنا نتحدّث عن كود بسيط لا يستخدم أيّة مكتبات خارجية. أما في المشاريع المعقّدة التي تحوي عشرات المكتبات الخارجيّة، فالأمر صعب جدّا، لأن المكتبات المتوفّرة وطريقة عملها تختلف كثيرا من لغة إلى أخرى، كما أنّ قدرات اللغات تختلف فيما بينها، فمثلا، لغة JavaScript على المتصفّح لا تستطيع الوصول إلى الملفّات، بينما تستطيع العمل بكل سهولة على الصفحة التي يعرضها المتصفّح، بينما لغة Python تستطيع التعامل مع الملفّات بكل سهولة لكنّها لا تستطيع التعامل مع صفحات الويب المعقّدة بنفس كفاءة JavaScript.

    شكرا لك جدا 
    كان جوابك اكثر من كافي لاغلاق جميع علامات الاستفهام الي عندي

    فهمت الفكره الي ودك توصلها لي بالكامل

    • أعجبني 1
  2. بتاريخ 17 دقائق مضت قال Chihab Hedidi:

    صحيح، اللغات المفسرة تقوم بتحويل الشيفرة المصدرية مباشرة إلى تنفيذ، في حين تستخدم اللغات المترجمة مرحلة إضافية تقوم بترجمة الشيفرة إلى رمز آلة قبل التنفيذ.

    بالنسبة لسؤالك حول تحويل الشيفرة من لغات مفسرة أو مترجمة إلى لغة الآلة، يمكن أن يكون هذا ممكنا من خلال استخدام برامج تعرف باسم المترجمات (Translators) أو Decompilers، إلا أنه ينبغي الإشارة إلى أن هذه الأدوات قد تكون معقدة وغير دقيقة في بعض الأحيان، خاصة عند التعامل مع تفاصيل داخل البرنامج التي قد تفقد أثناء عملية الترجمة، و كما نعرف أن لغة الآلة حساسة جدا، بتغيير رقم واحد فقط من صفر إلى واحد يتغير المعنى بأكمله، و في هذه الحالة يصعب ايجاد مكان الخطأ. 

    فيما يخص إمكانية التعديل أو التطوير، يمكن تحويل الشيفرة المصدرية بين لغات البرمجة باستخدام أدوات تحويل اللغات (Language Converters)، ولكن يجب أن يتم ذلك بحذر، حيث قد يتسبب التحويل في فقدان بعض المعلومات أو التغييرات في البنية البرمجية.

    شكرا لك

    اقتنعت الصراحه بجوابك واكثر شي هو ما انتبهت له ان اللغه تتكون من اصفار وواحدات وزي م قلت احتمالية الاخطاء الي ممكن تكون بتغيير احد الارقام بس وهذا ممكن انه يغير من الفكرة تماما

    • أعجبني 1
  3. على حسب فهمي ان اللغات تنقسم لنصفين اللغات المفسرة والمترجمة

    وفهمت ان لغة اللآلة صعبة التعلم بسبب انها تتكون من واحدات واصفار 
    لكن سؤالي هو ان دام لغة اللآلة اسرع وتستهلك ذاكرة اقل ليه ما يكون فيه موقع او برنامج يحول الكود المكتوب باللغات المفسرة اوالمترجمة الى لغة اللآله

    وطبعا في حال اردنا التعديل او تطوير حاجه معينه نقدر نحول الكود مره ثانيه للغه الي نحتاجها وكذا يكون سهل علينا
     

    • أعجبني 2
  4. عندي استفسارات عن بعض المواقع الي احتاجها في البرمجه

    1. هل فيه مواقع تعلمك الخطوات بالتفصيل لكامل المسارات لتعلم البرمجه عربي وانجليزي؟
    2. هل فيه مواقع فيها قوالب جاهزة مجانا للمواقع على الانترنت (مثال: قالب جاهز للتحميل عن متجر الكتروني او موقع دردشة)
    3. هل فيه مواقع فيها اكواد جاهزة لعناصر معينة في html بحيث ان اخذ الكود واستخدمه في الموقع حقي (مثال: تصاميم جاهزة للزر ال submit في html)
    4. وياليت تزودوني بمواقع الذكاء الاصطناعي الي بيساعد في البرمجه
    • أعجبني 1
  5. بتاريخ 15 دقائق مضت قال Mustafa Suleiman:

    قمت بتجربة تصفح الكود الخاص بالموقع وظهرت نفس المشكلة، وعند الضغط على الزر الخاص بتعطيل الـ breakpoints تم حل المشكلة وقمت بإعادة تحميل الصفحة وظهر الكود بشكل سليم:

    Snag_91d369c.thumb.png.9096b5bd417baa2ee1e86b033d6aa9a8.png

    وأية أخطاء تظهر لك في الكونسول هي تابعة للإعلانات وتم حجبها من خلال المتصفح.

    حاول تجربة الأمر مرة أخرى أو من خلال متصفح آخر لآنه لا يوجد مشكلة في تفقد الكود من خلال جوجل كروم.

    بعد عدة محاولات جربت بمتصفح ثاني وضبط الحمدلله شكرا لكم
    عندي سؤال ثاني بالنسبة لهذا الموقع في هذي قائمة البحث الموجودة 
    image.png.a152bb193b06391343d3175812c9fcb4.png

    لما اضغط عليها تصير كذا 
    image.png.1e0681decd5f6496b4d9bd98e448671c.png

    يعني في قائمة تطلع لي هل هذي معمولة في css ولا js؟
    وكيف الاقي ملف ال js المكتوب عن طريق مصمم الصفحة؟ ملف ال css لقيته عن طريق style الموجود في ال inspect لكن ملف ال js ما عرفت اطلعه

    • أعجبني 1
  6. بتاريخ 9 دقائق مضت قال عبدالباسط ابراهيم:

    حاول الضغط على العلامة التالية كما في الصورة بحيث توقف جميع ال breakpoints مع الضغط على  pause script execusion كما بالصورة التاليةScreenshot2023-09-11104433.png.c6e080ec52aaba79b9e5782041c171ce.png

    صح ضبطت الحركة لكن الان في كل مرة اروح للصفحة الرئيسية للموقع يرجعني للصفحة الي قبلها 

     

    • أعجبني 1
  7. بتاريخ 8 دقائق مضت قال عبدالباسط ابراهيم:

    يتم إنشاء هذه الأخطاء من إضافات حظر الإعلانات، مثل Adblocker. لاختبار ذلك، استخدم إما متصفحًا مختلفًا أو قم بإلغاء تثبيت المكون الإضافي لحظر الإعلانات Adblocker (انقر بزر الماوس الأيمن فوق الامتداد بجوار شريط URL ثم انقر فوق "إزالة من Chrome...").من المفترض بعد تنفيذ ذلك تختفي هذه الأخطاء

    أما بالنسبة لما يظهر لديك debugger paused  هو بسبب الضغط على pause script execusion من خلال العلامة الموضحة بالصورة لذلك قم بالضغط مرة أخرى عليها

    image.thumb.png.a6068eb37dbecc1eb16b99dd54fabd64.png.36070a2411b12623d3018053bf9c89a2.png

    مع الاسف حتى بعد عمل الخطوات باقي نفس المشكله وفي كل مره اسويها يتم انشاء ملف ثانيه 

     

    لقطة الشاشة 2023-09-11 102625.png

  8. السلام عليكم 
    احاول اشوف بعض الاكواد من هذا الموقع https://aniwave.to/home عن طريق الفحص بعد الضغط على زر الايمن من الماوس لكن تطلع لي ان debugger paused ومو قادر اضغط على شي زي كذا image.thumb.png.a6068eb37dbecc1eb16b99dd54fabd64.png

    وهذي الاخطاء الي تطلع لي في الكونسل 

    image.thumb.png.638c7acaf6d8c5a246c0f8297cc8f553.png
     

    هل فيه لها حل ؟

    • أعجبني 1
  9. بتاريخ 4 ساعة قال Mustafa Suleiman:

    طالما أنك قمت بإنهاء مسار إلى عالم الويب، تستطيع الإنتقال لدورة تطوير واجهات المستخدم، حيث أن المسارات الباقية في دورة علوم الحاسب منفصلة عن تطوير الواجهة الأمامية وموجهة لمن يريد تعلم البرمجة.

    لذلك تستطيع تعلم أساسيات جافاسكريبت من خلال دورة تطوير واجهات المستخدم، والإنتهاء من تلك الدورة ثم العودة إلى علوم الحاسوب وإنهاء المسارات الباقية، والتي ستواجه صعوبة بعض الشيء في فهمها وذلك طبيعي حاول استيعابها بنسبة 70% تقريبًا لأنك بحاجة إلى تنفيذ مشاريع برمجية بحجم متوسط بعد تعلم لغة البرمجة الأولى لك والتعمق بها ولتكن جافاسكريبت مثلاً، ثم العودة لدراسة هياكل البيانات والخوارزميات وستفهم ما الفائدة منها وما الفائدة من أنماط التصميم أيضًا، حيث أن الغالبية لا يفهم ما الفائدة منها عند دراستها في البداية.

    الصراحة انا ابغى اتعلم كبداية دورة تطوير واجهات المستخدم ودخلت الى دورة علوم الحاسوب لتعلم الاساسيات 
    ممكن ترسلي مخطط كامل عن كيف ابدا في الدراسه عشان احترف واجهات المستخدم + الدروس الي لازم ادرسها والي عادي اذا تخطيتها
    واكون لك من الشاكرين🤍

    • أعجبني 1
  10. بتاريخ 3 دقائق مضت قال عبدالباسط ابراهيم:

     الخيار الأفضل هو أن تكمل دراسة مسار "إلى عالم الويب" أولاً قبل البدء بدورة تطوير واجهات المستخدم

     

    المقصد هو اني بخلص درس "الى عالم الويب" قبل الانتقال الى دورة "تطوير واجهات المستخدم" لكن بعد درس "الى عالم الويب" يتوفر درس "البرمجة كائنية التوجه" وهي مختصة في مجال بايثون وانا لا اريد تعلم بايثون حاليا فهل يأثر سلبيا علي ان انتقلت الى دورة "تطوير واجهات المستخدم" بعد ان انتهي من درس "الى عالم الويب" ؟

    • أعجبني 1
  11. تم شراء 4 كورسات من اكادمية حسوب

    1. إدارة تطوير المنتجات
    2. علوم الحاسوب
    3. تطوير واجهات المستخدم
    4. تطوير التطبيقات باستخدام لغة Python
      بدأت من كورس علوم الحاسوب كبداية هل هذا صحيح؟ وايش الكورس الي لازم ابدأ فيه بعد ما اخلص منه؟ ياليت ترتبها من الواحد لل 4 بالرتيب
    • أعجبني 1
  12. بتاريخ 26 دقائق مضت قال Mustafa Suleiman:
    .loader {
      border: 16px solid #f3f3f3;
      border-top: 16px solid #3498db;
      border-radius: 50%;
      width: 120px;
      height: 120px;
      animation: spin 2s linear infinite;
    }
    
    @keyframes spin {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }

    السبب هو أنك قمت بنسخ تنسيق CSS الخاص بالـ Loader السابق حيث أنني وفرت لك تنسيق للـ Loader بسيط يقوم بالدوران، أما إذا أردت استخدام الصورة فعليك باستخدام تنسيق مختلف أي قم بإزالة التنسيق الذي نسخته أنت.

    وعليك بتنسيق كلاس .loader بالشكل الذي تراه مناسبًا.

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

    باقي اسويها بالصفحة كامله والصوت ما يشتغل

    project.rar

    • أعجبني 1
  13. بتاريخ 5 دقائق مضت قال Mustafa Suleiman:

    عليك بإضافة مسار الصورة الصحيح في الكود الذي اشرت إليه سابقٌا، فمثلاً لو كانت الصورة داخل مجلد images في مجلد المشروع فسيصبح المسار كالتالي:

    <!-- loader -->
      <div class="loader">
        <img src="images/loader.gif">
      </div>

     

    نعم سويتها لكن ظهر معي بالشكل هذا بسبب ملف ال css

     

  14. بتاريخ 42 دقائق مضت قال Mustafa Suleiman:

    إضافة صوت ترحيبي و Loader 

     لإضافة صوت الترحيب ، تستطيع استخدام عنصر HTML5 audio ، ويتم تشغيله باستخدام JavaScript.

    أولاً ، قم بإنشاء عنصر audio في HTML الخاص بك باستخدام العلامة <audio> ، وحدد مصدر الصوت الخاص بك باستخدام العلامة <source> ، كما يلي:

    <audio id="welcome-sound">
      <source src="path/to/sound/file.mp3" type="audio/mp3">
    </audio>

    بعد ذلك، عليك استخدام addEventListener لتعيين حدث load لتشغيل الصوت عندما تنتهي صفحة الويب من التحميل بدلاً من استخدام window.onload.

    وسنعتمد على حدث DOMContentLoaded بدلاً من load لتحديد الحدث الذي يتم إطلاقه عندما يتم تحميل كل العناصر في الصفحة بشكل كامل بدلاً من انتظار الصفحة بالكامل (مثل الصور) للانتهاء من التحميل ، وهذا يجعل الصفحة تستجيب بشكل أسرع.

    document.addEventListener("DOMContentLoaded", function(event) { 
      // تشغيل الصوت
      document.getElementById('welcome-sound').play();
    });

    إضافة loader إلى صفحتك 

    سيتم الجمع ما بين استخدام العناصر المختلفة في CSS لإنشاء loader مخصص،  وتستطيع استخدام صور GIF المحملة مسبقًا ، مثل الصورة التي أرفقتها، أو يمكنك استخدام الرسومات SVG أو CSS لإنشاء loader.

    بعد ذلك ، سنعتمد على JavaScript لإظهار وإخفاء loader بناءً على حالة تحميل الصفحة.

    HTML

     <!-- loader -->
      <div class="loader">
        <img src="path/to/loader/image.gif">
      </div>

    CSS

    .loader {
      border: 16px solid #f3f3f3;
      border-top: 16px solid #3498db;
      border-radius: 50%;
      width: 120px;
      height: 120px;
      animation: spin 2s linear infinite;
    }
    
    @keyframes spin {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }

    في الكود أعلاه ، يتم إنشاء loader باستخدام حدود CSS ودائرة مع مجموعة محددة من الألوان. يتم إنشاء الحركة باستخدام animation CSS ، والذي يسمح لل loader بالدوران بشكل لا نهائي.

    Javascript

    document.addEventListener("DOMContentLoaded", function(event) { 
      const loader = document.querySelector(".loader");
      loader.style.display = "none"; // إخفاء loader عند بدء تحميل الصفحة
      
      // تشغيل الصوت
      document.getElementById('welcome-sound').play();
      
      // إظهار loader بعد 3 ثوانٍ من بدء تحميل الصفحة
      setTimeout(function() {
        loader.style.display = "block";
      }, 3000);
      
      // إخفاء loader بعد 5 ثوانٍ من بدء تحميل الصفحة
      setTimeout(function() {
        loader.style.display = "none";
      }, 5000);
    });

    من خلال استهداف العنصر .loader باستخدام document.querySelector يتم إخفاؤه باستخدام style.display = "none".

    ثم تشغيل الصوت بواسطة

    document.getElementById('welcome-sound').play();.

    بعد ذلك ، يتم استخدام setTimeout لإظهار loader بعد 3 ثوانٍ من بدء تحميل الصفحة ، وإخفائه بعد 5 ثواني.

     إضافة صوت عندما يقوم الزائر بإنشاء حساب جديد

    عليك باستخدام العنصر audio في HTML لتشغيل الصوت ويمكنك تعيين مصدر الصوت في الـ JavaScript.

    بالنسبة لإضافة اسم العميل المسجل إلى رسالة الصوت ، سنعتمد على قيمة العنصر input الخاص بالاسم لاسترداد الاسم الذي قام المستخدم بكتابته.

    ثم يمكنك إضافة هذا الاسم إلى نص الرسالة الصوتية باستخدام concat في JavaScript.

    HTML

    <input type="text" id="name" placeholder="الاسم">
    <button id="submit">إنشاء الحساب</button>
    <audio id="welcome-sound">
      <source src="welcome.mp3" type="audio/mpeg">
    </audio>

    Javascript

    document.getElementById("submit").addEventListener("click", function() {
      const name = document.getElementById("name").value;
      const welcomeMessage = "مرحباً " + name + "! تم إنشاء حسابك بنجاح";
      const audio = document.getElementById("welcome-sound");
      audio.src = "welcome.mp3"; // مصدر الصوت
      audio.play();
      setTimeout(function() {
        alert(welcomeMessage);
      }, 3000); // 3 ثوانٍ للتأكد من عرض الرسالة الصوتية بشكل كامل
    });

    الكود يستخدم addEventListener لاستماع حدث النقر على الزر "إنشاء الحساب".

    ويتم استخدام قيمة العنصر input الخاص بالاسم لإعداد رسالة الترحيب بشكل ديناميكي. ثم يتم تشغيل الصوت وإضافة رسالة الترحيب إلى الـ alert التي تظهر بعد ثلاث ثوانٍ من تشغيل الصوت.

    ويمكنك تغيير المدة المحددة في setTimeout وفقًا لاحتياجاتك.

    كل شي ضبط تقريبا شكرا لك لكن انا احتاج اضيف هذا ال loader ويكون على الصفحة كامله

    08.gif

  15. بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

    إضافة صوت ترحيبي و Loader 

     لإضافة صوت الترحيب ، تستطيع استخدام عنصر HTML5 audio ، ويتم تشغيله باستخدام JavaScript.

    أولاً ، قم بإنشاء عنصر audio في HTML الخاص بك باستخدام العلامة <audio> ، وحدد مصدر الصوت الخاص بك باستخدام العلامة <source> ، كما يلي:

    <audio id="welcome-sound">
      <source src="path/to/sound/file.mp3" type="audio/mp3">
    </audio>

    بعد ذلك، عليك استخدام addEventListener لتعيين حدث load لتشغيل الصوت عندما تنتهي صفحة الويب من التحميل بدلاً من استخدام window.onload.

    وسنعتمد على حدث DOMContentLoaded بدلاً من load لتحديد الحدث الذي يتم إطلاقه عندما يتم تحميل كل العناصر في الصفحة بشكل كامل بدلاً من انتظار الصفحة بالكامل (مثل الصور) للانتهاء من التحميل ، وهذا يجعل الصفحة تستجيب بشكل أسرع.

    document.addEventListener("DOMContentLoaded", function(event) { 
      // تشغيل الصوت
      document.getElementById('welcome-sound').play();
    });

    إضافة loader إلى صفحتك 

    سيتم الجمع ما بين استخدام العناصر المختلفة في CSS لإنشاء loader مخصص،  وتستطيع استخدام صور GIF المحملة مسبقًا ، مثل الصورة التي أرفقتها، أو يمكنك استخدام الرسومات SVG أو CSS لإنشاء loader.

    بعد ذلك ، سنعتمد على JavaScript لإظهار وإخفاء loader بناءً على حالة تحميل الصفحة.

    HTML

     <!-- loader -->
      <div class="loader">
        <img src="path/to/loader/image.gif">
      </div>

    CSS

    .loader {
      border: 16px solid #f3f3f3;
      border-top: 16px solid #3498db;
      border-radius: 50%;
      width: 120px;
      height: 120px;
      animation: spin 2s linear infinite;
    }
    
    @keyframes spin {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }

    في الكود أعلاه ، يتم إنشاء loader باستخدام حدود CSS ودائرة مع مجموعة محددة من الألوان. يتم إنشاء الحركة باستخدام animation CSS ، والذي يسمح لل loader بالدوران بشكل لا نهائي.

    Javascript

    document.addEventListener("DOMContentLoaded", function(event) { 
      const loader = document.querySelector(".loader");
      loader.style.display = "none"; // إخفاء loader عند بدء تحميل الصفحة
      
      // تشغيل الصوت
      document.getElementById('welcome-sound').play();
      
      // إظهار loader بعد 3 ثوانٍ من بدء تحميل الصفحة
      setTimeout(function() {
        loader.style.display = "block";
      }, 3000);
      
      // إخفاء loader بعد 5 ثوانٍ من بدء تحميل الصفحة
      setTimeout(function() {
        loader.style.display = "none";
      }, 5000);
    });

    من خلال استهداف العنصر .loader باستخدام document.querySelector يتم إخفاؤه باستخدام style.display = "none".

    ثم تشغيل الصوت بواسطة

    document.get

    شكرا لك استاذ سليمان اقدر تعبك وكل عام وانتم بخير عيدكم مبارك

     

    بجرب واشوف انشاءلله

    1. هل يمكنني اضافة صوت ترحيبي عند الدخول لصفحة الويب مع loader معين زي هذا https://shoppingecommerce.netlify.app/dist/imgs/loaders/08.gif؟

    2. وهل يمكنني اضافة صوت عندما يسوي الزائر حساب جديد ويكون في الرسالة الصوتية متغير اضيف فيها اسم العميل الي كتبه في خانة الاسم؟
    • أعجبني 1
×
×
  • أضف...