108- دروس جافا سكربت – – JS Browser BOM Window

## مقدمة إلى BOM في JavaScript

BOM أو **Browser Object Model** هو نموذج يتيح للمطورين التفاعل مع المتصفح من خلال كائنات JavaScript. يوفر BOM واجهات للتعامل مع كل ما يتعلق بالنافذة التي يعرض من خلالها المستخدم صفحة الويب. أحد أهم عناصر BOM هو كائن `window`، وهو الكائن الأعلى في التسلسل الهرمي لـ BOM.

### كائن `window`

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

### أمثلة على استخدام كائن `window`

#### 1. فتح نافذة جديدة

يمكنك فتح نافذة جديدة باستخدام الطريقة `window.open()`. هذا المثال يوضح كيفية فتح نافذة جديدة بعنوان محدد وقياسات معينة.

let myWindow = window.open("https://www.example.com", "MyWindow", "width=600,height=400");

#### 2. إغلاق نافذة

لإغلاق نافذة، يمكنك استخدام الطريقة `window.close()`:

myWindow.close();

#### 3. تغيير [شركة برمجة مصرية] حجم النافذة

يمكنك تغيير قياس النافذة باستخدام `window.resizeTo()`:

window.resizeTo(800, 600);

#### 4. التنقل بين الصفحات

كائن `window.location` يسمح لك بتغيير الموقع الحالي للصفحة:

window.location.href = "https://www.example.com";

#### 5. التنقل للأمام والخلف

يمكنك استخدام `window.history` للتنقل بين الصفحات التي تمت زيارتها:

// للانتقال إلى الصفحة السابقة
window.history.back();

// للانتقال إلى الصفحة التالية
window.history.forward();

### [شركة برمجة مصرية] خصائص أخرى هامة لكائن `window`

#### 1. `window.document`

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

#### 2. `window.navigator`

يوفر معلومات عن المتصفح والنظام الذي يعمل عليه.

#### 3. `window.screen`

يحتوي على معلومات عن شاشة المستخدم، مثل الدقة والمساحة المتاحة.

#### 4. `window.localStorage` و `window.sessionStorage`

توفر وسيلة لتخزين البيانات على جانب العميل.

### خاتمة

يعتبر BOM جزءًا حيويًا من تطوير تطبيقات الويب باستخدام JavaScript. إنه يوفر الأدوات اللازمة للتفاعل مع المتصفح والتحكم في سلوك النوافذ. من خلال فهم كيفية استخدام كائن `window` وخصائصه المختلفة، يمكنك تحسين تجربة المستخدم وتطوير تطبيقات ويب ديناميكية وفعالة.