JavaScript و HTML
هذه المقالة تشرح JavaScript و HTML۔
YouTube Video
كائن window
في JavaScript
كائن window
في JavaScript هو الكائن العام في بيئة المتصفح، ويوفر وظائف ومعلومات متعلقة بصفحة الويب ونافذة المتصفح۔ نظرًا لأن window
هو النطاق العام للمتصفح، فإن كل كود JavaScript يتم تشغيله في المتصفح يصبح جزءًا من كائن window
۔ يلعب كائن window
دورًا مهمًا في تشغيل JavaScript في بيئة المتصفح، حيث يوفر العديد من واجهات البرمجة (APIs) والخصائص۔
الميزات الأساسية لكائن window
الخصائص
1// Get and display the document's title
2console.log(window.document.title);
3
4// Get and display the current URL
5console.log(window.location.href);
6
7// Go back to the previous page
8window.history.back();
9
10// Display the browser's user agent
11console.log(window.navigator.userAgent);
12
13// Display the width and height of the viewport
14console.log(`Width: ${window.innerWidth}, Height: ${window.innerHeight}`);
window.document
: للوصول إلى مستند HTML الحالي۔window.location
: لإدارة عنوان URL الحالي والتنقل في المتصفح۔window.history
: للوصول إلى معلومات تاريخ التصفح والسماح بالتنقل للأمام والخلف۔window.navigator
: يقدم معلومات عن المتصفح والجهاز۔window.innerWidth
/window.innerHeight
: للحصول على عرض وارتفاع نافذة العرض۔
الطرق
1// Show an alert
2window.alert('Hello, this is an alert!');
3
4// Show a confirmation dialog
5if (window.confirm('Are you sure you want to proceed?')) {
6 console.log('User clicked OK');
7} else {
8 console.log('User clicked Cancel');
9}
10
11// Show a prompt dialog
12const userInput = window.prompt('Please enter your name:');
13console.log(`Hello, ${userInput}!`);
14
15// Open a new tab
16window.open('https://www.example.com', '_blank');
17
18// Display a message after 3 seconds
19window.setTimeout(() => {
20 console.log('This message appears after 3 seconds!');
21}, 3000);
22
23// Display a message every second
24const intervalId = window.setInterval(() => {
25 console.log('This message appears every second!');
26}, 1000);
27
28// Clear the interval after 5 seconds
29setTimeout(() => {
30 clearInterval(intervalId);
31 console.log('Interval cleared.');
32}, 5000);
window.alert()
: يعرض مربع حوار تنبيه۔window.confirm()
: يعرض مربع حوار يطلب تأكيد المستخدم ويرجع نتيجة موافق أو إلغاء۔window.prompt()
: يعرض مربع حوار يطلب إدخال المستخدم ويسترد القيمة المدخلة۔window.open()
: يفتح نافذة أو تبويبة جديدة۔window.setTimeout()
/window.setInterval()
: يضبط مؤقتًا لتشغيل وظيفة بعد وقت محدد أو على فترات منتظمة۔
التعامل مع الأحداث
1// Display a message when the page is fully loaded
2window.onload = () => {
3 console.log('Page is fully loaded!');
4};
5
6// Display a message when the window is resized
7window.onresize = () => {
8 console.log('Window resized! New size:', window.innerWidth, 'x', window.innerHeight);
9};
10
11// Display a message when the page is being scrolled
12window.onscroll = () => {
13 console.log('Page is being scrolled!');
14};
window.onload
: حدث يتم تنفيذه عند اكتمال تحميل الصفحة بالكامل۔window.onresize
: حدث يتم تنفيذه عند تغيّر حجم النافذة۔window.onscroll
: حدث يتم تنفيذه عند تمرير المستخدم للصفحة۔
الدور كمتغير عالمي
1var myVar = 10;
2console.log(window.myVar); // 10
- كائن
window
يحتفظ بالمتغيرات العالمية والوظائف۔ بمعنى آخر، المتغيرات والوظائف المعلنة تصبح تلقائيًا خصائص لـwindow
۔
التعامل مع DOM في JavaScript
يُستخدم التعامل مع DOM (نموذج كائن المستند) في JavaScript للتفاعل ديناميكيًا مع العناصر في صفحة الويب۔ يمثل DOM بنية مستند HTML كشجرة، والتي يمكن تغييرها باستخدام JavaScript لتعديل البنية والتحكم في عرض الصفحة۔
أساسيات DOM
يتعامل DOM مع HTML الخاص بصفحة ويب ككائنات، مما يسمح بالوصول إلى العناصر والسمات وتعديلها۔ استخدم كائن document
للوصول إلى مستند HTML۔
1<!DOCTYPE html>
2<html>
3 <head>
4 <title>Example of DOM Manipulation</title>
5 </head>
6 <body>
7 <div id="content">Hello, World!</div>
8 <button id="changeText">Change Text</button>
9 </body>
10</html>
استرجاع عناصر DOM
JavaScript يحتوي على عدد من الطرق للوصول إلى العناصر في DOM۔
document.getElementById()
: الحصول على عنصر بواسطة خاصيةid
document.getElementsByClassName()
: الحصول على العناصر بواسطة اسم الفئة (HTMLCollection)document.getElementsByTagName()
: الحصول على العناصر بواسطة اسم العلامة (HTMLCollection)document.querySelector()
: الحصول على أول عنصر مطابق باستخدام محدد CSSdocument.querySelectorAll()
: الحصول على جميع العناصر المطابقة باستخدام محدد CSS (NodeList)
مثال: getElementById
وquerySelector
1const content = document.getElementById('content');
2console.log(content.textContent); // "Hello, World!"
3
4const button = document.querySelector('#changeText');
التعامل مع DOM
يمكن تنفيذ عمليات متنوعة على العناصر التي تم الحصول عليها۔
تغيير النص
لتغيير نص عنصر ما، استخدم textContent
أو innerHTML
۔
textContent
: الحصول على محتوى النص أو تغييره لعنصر۔ لا يتم تفسير علامات HTML۔innerHTML
: الحصول على محتوى HTML أو تغييره لعنصر۔ يتم معالجة النصوص التي تحتوي على علامات HTML أيضًا۔
1content.textContent = 'Hello, world!'; // Change the text
2button.innerHTML = '<strong>Click to change</strong>'; // Change including HTML
تغيير السمات
استخدم setAttribute()
وgetAttribute()
لتغيير سمات العنصر۔
1button.setAttribute('disabled', 'true'); // Disable the button
2const id = content.getAttribute('id'); // Get the "content"
تغيير نمط CSS
استخدم خاصية style
لتغيير أنماط CSS۔
1content.style.color = 'red'; // Change the text color to red
2content.style.fontSize = '20px'; // Change the font size
التعامل مع الفئات (Classes)
استخدم classList
لإضافة أو إزالة الفئات من العنصر۔
add()
: إضافة فئةremove()
: إزالة فئةtoggle()
: إضافة أو إزالة فئة بناءً على وجودهاcontains()
: التحقق إذا كانت الفئة موجودة
1content.classList.add('highlight'); // Add a class
2button.classList.toggle('active'); // Toggle a class
إنشاء وحذف عناصر DOM
إنشاء عناصر جديدة
استخدم document.createElement()
لإنشاء عنصر جديد وإضافته إلى DOM۔
1const newDiv = document.createElement('div'); // Create a new div element
2newDiv.textContent = 'This is a new element';
3document.body.appendChild(newDiv); // Append to the body element
حذف العناصر
استخدم طريقة remove()
لحذف عنصر۔
1newDiv.remove(); // Remove the created element
إضافة الأحداث
كجزء من التعامل مع DOM، يمكنك إضافة معالجات أحداث تستجيب لتفاعلات المستخدم۔ استخدم addEventListener()
للتعامل مع الأحداث مثل النقرات وتفاعلات لوحة المفاتيح۔
1button.addEventListener('click', () => {
2 content.textContent = 'The text has been changed';
3});
في هذا المثال، يؤدي النقر على الزر إلى تغيير نص العنصر #content
۔
التنقل في شجرة DOM
يمكنك التنقل في DOM للوصول إلى العناصر الأصلية أو الشقيقة۔
parentNode
: الوصول إلى العقدة الأصليةchildNodes
: الوصول إلى العقد الفرعية (من جميع الأنواع)firstChild
/lastChild
: العنصر الفرعي الأول/الأخيرnextSibling
/previousSibling
: العنصر الشقيق التالي/السابق
1const parent = content.parentNode; // Get the parent element
2const firstChild = parent.firstChild; // Get the first child element
3console.log(firstChild);
مثال: إضافة عنصر جديد إلى قائمة
إليك مثال على إضافة عنصر جديد إلى قائمة۔
1<ul id="list">
2 <li>Item 1</li>
3 <li>Item 2</li>
4</ul>
5<button id="addItem">Add Item</button>
6
7<script>
8 const list = document.getElementById('list');
9 const addItemButton = document.getElementById('addItem');
10
11 addItemButton.addEventListener('click', () => {
12 const newItem = document.createElement('li');
13 newItem.textContent = 'New Item';
14 list.appendChild(newItem);
15 });
16</script>
في هذا الكود، يؤدي النقر على زر "إضافة عنصر" إلى إضافة عنصر <li>
جديد إلى القائمة۔
الملخص
- تتيح لك عمليات التلاعب بـ DOM في JavaScript الحصول على العناصر وتغييرها وإنشائها وحذفها داخل مستند HTML۔
- يمكنك الحصول على العناصر باستخدام طرق مثل
getElementById()
وquerySelector()
۔ - استخدم
textContent
أوinnerHTML
لتغيير النصوص أو شيفرة HTML، واستخدمsetAttribute()
للتلاعب بالسمات۔ - استخدم
createElement()
لإنشاء عناصر جديدة وremove()
لحذفها۔ - يمكنك إنشاء صفحات ويب تفاعلية تستجيب لإجراءات المستخدم من خلال التعامل مع الأحداث۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔