مدونة علم البرمجة والحاسوب
من حقك ان تتعلم اكثر

دورة جافا سكربت - Javascript الثامن



يحتوي على

*** منشئ الكائن
*** اكتساب الخصائص
*** التسلسل الخاص بـDOM
*** استعراض كائنات الصفحه
*** نوع المتصفح
*** التعرف على المتصفح
*** فحص نظام التشغيل
*** برنامج Shockwave
*** اسلوب التعامل مع الاخطاء في Java



منشئ الكائن

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

يستخدم اسم الكائن متبوعا بمسافه وبعد ذلك ياتي اسم الصفحه

على سبيل المثال تقوم خاصيه array.length بعرض خاصيه الطول بالنسبه لكائن المصفوفه

ويمكن انشاء كائنات مخصصة جديدة بسهولة من خلال استخدام الكلمة الرئيسية new

في لغه جافا سكربت والمنشئ Object() من الممكن تحديد الخصائص بالنسبه للكائن

الجديد من خلال كتابه اسم الخاصيه وتعيين قيمه لها

ويقوم المثال التالي يقوم بانشاء كائن جديد باسم car ويقوم بتحديد ثلاث خصائص لهذا

الكائن ذات قيم محددة



كود PHP:
var car=new Objcet();
car.maker="Porsche";
car.model="Boxster";
car.color="Red";
alert(car.color+""+car.maker+""+car.model); 

يمكنك اكساب المثال السابق نوعا من المرونه من خلال تحديد

الكائن المخصص الذي تم انشاؤه حديثا كخاصيه في كائن اخر مخصص وفي هذه الحاله يتم

اكتساب خصائص وقيم الكائن المحدد من خلال خاصيه الكائن المحدد الثاني ويتم عرض

الخصائص المكتسبه من خلال اضافه نقطه واسم الخاصيه المكتسبه والمده بعد عنوان الخاصيه

التي تم تعيين الخصائص المكتسبه لها ومن الافضل ان تفهم هذه العلاقه عند التعامل

مع هذه الكائنات والخصائص في صفحات الويب

ويقوم المثال التالي بتناول كيفية تحديد كائن جديد لخاصيه في

كائن ثان مخصص وكيف يمكن عرض الخصائص المكتسبه


كود PHP:
var mondeo=new Object();
mondeo.badge="Mondeo";
mondeo.body="Saloon";
mondeo.doors=4;
mondeo.color="Red";
mondeo.engine="1.8 litre";

var 
car=new Objcet();
car.maker="Ford";
car.model=mondeo;
alert(car.maker+""+car.model.badge+""+car.model.body); 

التسلسل الخاص بــ DOM

يشير Document Object Model(DOM) في اي متصفح مجموعة من الكائنات في

هذا المتصفح يمكن عرضها من خلال جافا سكربت من اجل التاثير على

اداء المستند الذي تم انشاؤه بلغه HTML وتتبع هذه الكائنات تسلسلا محددا بحيث

يكون كائن window في المستوى الاول ونظرا لان كائن window يتصدر القائمه يمكن

حذفه من العنوان وبذلك يمكن عرض خاصيه window.document.bgColor التي تقوم بتخزين

لون الخلفيه الحالي الخاص بقيمه الاطار كــ document.bgColor

وتمتلك العديد من كائنات DOM خصائص حتى يمكنها ان تشتمل على مصفوفة

من العناصر في صفحه الويب على سبيل المثال تستخدم مصفوفه images[] مع

document.images[] كخاصيه في كائن document الذي سيقوم

بتخزين عنوان كل صورة موجودة في صفحة الويب

ويتم تخزين العنوان الخاص بالصورة الاولى في الكود الذي تمت كتابته بلغة html داخل

المصفوفه document.images[0] ثم يتم تخزين العنوان الخاص بالصور المتتابعه في فهارس

العناصر الخاصه بالمصفوفه المتزايده ولكن لسوء الحظ فان DOM لا يعتبر بمثابه مقياس بين

ادوات التصفح ولذلك فان Netscape DOM تختلف عن DOM الاكثر اشتمالا والتي يستخدمها

Microsoft Internet Explorer يقوم هذا المثال بتعيين قيمه لخاصيه document.bgColor


كود PHP:
<SCRIPT TYPE="text/javascript">

<!--
document.bgColor "black";
//-->
</SCRIPT> 

**** ملاحظه ****

يمكن استخدام تركيب self لعرض الـ window مثل self.bgColor


استعراض كائنات الصفحة

يوضح النص البرمجي التالي كائنات window الافتراضيه في كل من اصداري المتصفحين

Internet Explorer 5.5 و Netscape 4.7


كود PHP:
<SCRIPT TYPE="text/javascript">

<!--

for(
propertyName in window)
document.write(propertyName+",");
//-->
</SCRIPT> 

**** ملاحظه ****

يمكن لهذا النص البرمجي ان يوضح المزيد من كائنات DOM عند استبدال كائن window

بكائن document لمعرفه المزيد



نوع المتصفح

يحتوي كائن navigator على خصائص توفر المعلومات المتعلقه بالمتصفح الذي يتم استخدامه

لعرض المستند وتقوم خاصية navigator.appName بعرض اسم المتصفح

بينما تعرض خاصية navigator.appVersion بعرض رقم الاصدار الخاص بالمتصفح

وبالإضافه الى رقم الاصدار فان خاصيه navigator.appVersion تحتوي على مزيد من

التفاصيل الاختياريه وفي المثال القادم يتم عرض معلومات اضافيه للمستخدم خاصة

بنظام التشغيل كما يعرض المتصفح الخاص بك بشركه نت سكيب لغات خاصه بالمستخدم

وتفاصيل تتعلق بعمليه التشفير لمنع الوصول الى البيانات


كود PHP:
<SCRIPT TYPE="text/javascript">

<!--

var 
browser navigator.appName;

var 
version navigator.appVersion;
alert(browser+"\n"+version);
//-->
</SCRIPT> 

**** ملاحظه ****

ينتهي عرض البيانات في الشكل التالي بحرف "i" الكبير للدلاله على مستوى

التشفير المتبع عالميا وهو خاص بالنت سكيب


التعرف على المتصفح

حتى يتم عرض صفحات الويب بصوره جيده يجب ان تحدد نوع المتصفح بحيث يمكن تحميل صفحه

او تطبيق كود خاص بمتصفح معين باضافه خصائص جديده الى كائن document لتشغيل المؤثرات

الديناميكيه في dhtml وقدمت شركه Netscape خاصيه document.layers بينما قامت شركة

مايكروسوفت بانشاء خاصيه document.all ومن الافضل ان تقوم بفحص هذه الخصائص من

اجل التعرف على نوع المتصفح والتاكد من قدرته على الكتابه بلغه dhtml

ويقوم المثال التالي باختبار ادوات التصفح وفتح الصفحة الخاصه بالمتصفح طبقا لادوات

التصفح الحديثه والقديمه الخاصه بشركة Netscape وشركه Microsoft او الصفحه الافتراضيه

الخاصه بايه ادوات تصفح اخرى


كود PHP:
if(document.all)window.location "ie-dhtml.html";

if(
document.layers)window.location "nn-dhtml.html";

else {

var 
oldnn = (navigator.appName == "Netscape"
&& parseInt(navigator.appVersion)<4);
location = (oldnn) ? "nn-old.html" "default.html"; }


**** ملاحظه ****

تحتوي خاصيه الموقع التابعه لكائن window على موقع الصفحه الحالي ولذلك فان تغيير قيمتها

سيؤدي الى تحميل موقع جديد


فحص نظام التشغيل

قد يتاثر اداء صفحه الويب بنظام التشغيل الذي يعمل عليه المتصفح نظرا

لنقص الدعم في محتوى الصفحه ولذلك فان ايه صفحات ويب تحتوي على عنصر التحكم ActiveX

لن تعمل بالشكل المطلوب على هذا النظام كما ان مؤثرات dhtml التي تعمل بشكل جيد في

متصفح انترنت اكسبلور على نظام التشغيل المستخدم في الكمبيوتر الشخصي لن تعمل بنفس

الكفاءه على نظام Mac في نفس الاصدار من هذا المتصفح ويمكن كتابه نص البرمجه الخاص بنظام

التشغيل بنفس الطريقه المستخدمه في كتابه نص البرمجه الخاص باي متصفح باستخدام خاصيه

navigator.paltform وتحتوي هذه الخاصيه على سلسله قصيره تقوم بعرض نظام التشغيل

الخاص بالمستخدم ويمكن قراءتها لتقسيم النص البرمجي بهدف التغلب على اي قصور

في نظام التشغيل ويقوم المثال التالي بكتابه سطر من النص طبقا لنظام

التشغيل الذي تم تحديده


كود PHP:
<SCRIPT TYPE="text/javascript">

<!--

if(
navigator.platform == "Win16")var os="Windows3.1";

if(
navigator.platform == "Mac")os="MacOS";

if(
navigator.platform == "Win32")os="Windows95";
document.write("Operating system is" +os);
//-->
</SCRIPT> 

برنامج Schockwave

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

ان يقوم بعرض فيلم Flash Macromedia وتحميل ايه صفحة بديله اذا كان برنامج Schockwave

غير متاح ويمكن استخدام navigator.plugin في ادوات التصفح الخاصه بشركه النت سكيب من

اجل الحصول على برنامجي Flash و SchockKwave بطريقه مباشره ولكن هذخ الخاصيه

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

بعمليه الفحص ثم يقوم بتحميل الصفحة المحددة طبقا للنتيجة


كود PHP:
if((navigator.appName == "Microsoft Internet Explorer"
&&navigator.appVersion.indexOf("Mac") ==-1
&&navigator.appVersion.indexOf("3.1") == -1)

||

(
navigator.plugins&&navigator.plugins["Shockwave Flash"])

||
navigator.pulgins["Shockwave Flash 2.0"]) window.location "playflash.html";

else
window.location "noflash.html"


اسلوب التعامل مع الاخطاء في لغه جافا Java

يمكن تقيم مستوى كفاءة المتصفح باستخدام لغه جافا من خلال تقنية navigator.javaEnabled()

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

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

او اذا كان يجب تحميل صفحه اخرى بديله غير التي تم انشاؤها بلغه جافا ويوضح المثال التالي

كيفيه التعامل مع الاخطاء في لغه جافا


كود PHP:
if(navigator.javaEnabled())
window.location "javapage.html";

else
window.location "nonjavapage.html"

**** ملاحظه ****

لاحظ ان javaEnabled() تعتبر بمثابه تقنيه خاصة بكائن navigator وليست مجرد خاصيه ولذلك فهي يجب ان تكون متبوعه باقواس



انتهى الفصل الثامن

أرشيف المدونة الإلكترونية

من انا ؟