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

TvQuran
TvQuran

العودة   منتديات هندسة الأتصالات و نظم الأرسال الإذاعى و التليفزيونى و الأقمار الأصطناعية > الأقسام العامة > قسم الموضوعات العامة

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 17-02-2010, 05:45 PM   رقم المشاركة : 1 (permalink)
معلومات العضو
احمدراغب
Junior Member






احمدراغب غير متواجد حالياً

أحصائية الترشيح

عدد النقاط : 10
احمدراغب is on a distinguished road

 

Post تعلم جافا سكريبت



 

السلام عليكم ورحمه الله وبركاته

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

من كتاب لتعلم الجافا وسوف اضع الدروس في الايام القادمه كلها لافادة

اخواننا واخواتنا في هذا المنتدى الطيب

نبدا بالدرس الاول

بسم الله الرحمن الرحيم

نشأة الجافا سكربت :-

ظهرت في العام 1995 م حيث كان يطلق عليها في البدايه لايف سكربت Live ******

المتطلبات لكتابه الكود المفكره او اي محرر نصوص أخر

الكتله النصيه للجافا :-

تكون على الشكل التالي

********>

<!--



//-->

</******>

مع الملاحظه ان في بدايه الكتله تبدا هكذا ********> وفي نهايتها لابد من إضافه / لها </******>

ويتم ادخل الكود الفعلي بين السطرين الذان يبدائان بــ <!-- و //-->

استدعاء داله التحذير :-

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

او الترحيب بكم في زياتكم لموقعه وهكذا

ومثالها :-

********>

<!--

*****("اهلا وسهلا بكم في منتديات الحزم الاسلاميه");

//-->

</******>

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

لاحظ علامات التنصيص لابد من وجودها في بدايه النص وفي نهايته

ولاحظ وجود الفاصله المنقوطه في اخر النص ويجب استخدامها في نهايه اي جمله

ملاحظه :-

في لغه جافا سكربت java تختلف عن JAVA مثال لو استخدمت في المثال

السابق ***** وكتبتها انت حروف كبيره لن يستجيب لك داله *****

وعند اضافه // او /* و */ وهذه الرموز تفيدك لكتابة التعليقات

********>

<!--

/*hhhhhhhhhhhhhhh
hhhhhh
hhhhhhh*/

*****("7azm");

//hhhhhhhhhhhh

//-->

</******>


لاحظ التعليقات لابد ان تبدا بـ /* وتنتهي */ او تضع // فقط

الكلمات الرئيسيه :-

وهي جزء لا يتجزء من لغه جافا سكربت

break - do - function - null - typeof - case - else - if - return - var - continue - export

import - switch - void - default - false - in - this - while - delete - for - new - true - with

المتغيرات :-

وتعتبر بمثابه المكان الذي فيه تخزن البيانات من اجل استخدامه

في اي برنامج يتم انشاؤه باستخدام جافا سكربت

عند تسميتك للمتغير لابد ان يبدا بحرف لاتيني وبامكانك تستخدم الشرطه التحتيه في اسم المتغير

اسم المتغير لا يبدا برقم

مثال لاسماء متغيرات صحيحه

JaVa

Ja_VA

java123

مثال لاسماء متغيرات خاطئه :-

4hhhh

88m88

قم بانشاء متغير جديد باستخدام الكلمه الرئيسيه "var"

********>

<!--

var message="first java";

*****("message");

//-->

</******>


انواع البيانات :-

تعتبر لغه جافا سكربت بمثابه لغه صعبه في عمليه الكتابه

فان متغيراتها تقوم تخزين الارقام والسلاسل الحرفيه سواء اكانت true او false

********>

<!--

var a=0.06

var b = "java ****** in easy steps";

var c false;

*****(typeof a + "\n" + typeof b + "\n" +typeof c);

//-->

</******>

المثال السابق يقوم بانشاء متغيرات ذات قيمه اوليه ثم يتم ارسالها الى داله *****()

ويتم استخدام typeof لعرض نتيجه بنوع البيانات الخاصه بها

ويقوم الكود "+/n+" يقوم بعرض المخرجات الخاصه بكل قيمه في سطر جديد في مربع التحذير

مفهوم Escape Sequences :-

عندما تسبق علامه الشرطه المائله "/" اي حرف في نص فان

الحرف الذي يتبع هذه العلامه من نوع معين ومسئول عن احداث تاثير

محدد ولا يتعبر هذا الحرف جزء من تركيب جافا سكربت

/b-----------حذف

/f-----------ادخال حرف

/n-----------سطر جديد

/r-----------علامه رجوع

/t----------علامه جدوله

/'---------علامه اقتباس مفرده ولا تدل على انتهاء السلسله الحرفيه

/"---------علامه اقتباس مزوجه تشير الى نهايه السلسله الحرفيه

//--------شرطه خلفيه واحده

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

مثال

*****("aaaaa\"a9aaa\"");

الدوال :-

وهي من اساسيات برمجه لغه الجافا سكربت

function call_*****(){

*****("my first java ****** function");

}

يجب ان يكون الاسم متبوعا بقوسين () ثم بزوج من الاقواس {} والتي تحتوي على الكود المراد تنفيذه

في المثال السابق اسم الداله call_*****

والكود سوف يتم استدعاء الداله *****

ويمكن لسمه "onload" الخاصه بعلامه الترميز <BODY> في HTML

<BODY ONLOAD="call_*****()">


وسائط الدوال :-

str يستخدم كاسم متغير يشتمل على بيانات سلاسل حرفيه

function call_*****(str){

*****(str);

}



<BODY ONLOAD="call_*****('passed value')">


الدوال المتعددة :-

function call_*****(num){

var new_number=make_double(num);

*****("the value is"+new_number);

}

function make_double(num){

var double_num=num+num;

return double_num;

}




<BODY ONLOAD="call_*****(4)">


نطاق المتغيرات الخاصه :-

var stored_num

function call_*****(num){

stored_num=num;

make_triple();

*****("the value is"+stored_num);

}

function make_triple(){

stored_num=stored_num+stored_num+stored_num;

}




<BODY ONLOAD="call_*****(5)">

الوسائط المتعدده :-

var a,b,c;

function call_*****(str1.str2,str3){

a=str1;

b=str2:;

c=str3;

*****(a+b+c);

}

يقوم هذا المثال بتعريف الداله التي تحتوي على ثلاثه وسائط

ولذلك فان اي استدعاء لها يجب ان يحتوي على ثلاث قيم

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


* * * * *


انتهينا من الدرس الاول ولله الحمد

والان لازم تكون عرفت الاتي :-

*** طريقه كتابه الكتله النصيه

*** استدعاء داله التحذير

***الكلمات الاساسيه

*** المتغيرات

*** انواع البيانات

*** مفهوم Escape Sequences

*** الدوال

*** وسائط الدوال

*** الدوال المتعدده

*** المجال الخاص بالمتغير

*** تعدد الوسائط
الجزء الثاني




الدرس الثاني وان شاء الله اعجبكم الدرس الاول

معاملات التشغيل الرياضيه :-

+ ====> الجمع ربط السلاسل الحرفيه ببعضها البعض

- ===> طرح

* ===> الضرب

/ ===> القسمه

% ===> باقي القسمه

++ ===> زياده او رفع القيمه

-- ===> انقاص او خفض القيمه

++ و -- يقومان برفع او خفض القيمه بالمقدار الذي تم تحديده

a=b*c-d%e/f; \\ this is unclear

a(b*c)-((d%e)/f); \\this is clear

var addnum=20+30;

var addstr ="love"+"7azm";

var sub=35.75-28.25;

var mul=8*50;

var mod=65%2;

var inc=5;inc=++inc;

var dec=5;dec=--dec;

var result="Addunm is"+addnum+"\n";

result +="Addstr is"+addstr+"\n";

result +="Sub is"+sub+"\n";

result +="Mod is"+mod+"\n";

result +="Mul is"+mul+"\n";

result +="Inc is"+inc+"\n";

result +="Dec is"+dec+"\n";

*****(result);


معاملات التشغيل المنطقيه :-

&& ===> Logical AND

|| ===> Logical OR

! ===> Logical NOT

تستخدم معاملات التشغيل المنطقيه مع المعاملات التي تحتوي على قيم حقيقه true او false

والقيم التي يمكنها ان تتحول الى true او false

& تقوم بالتحقق من صحه قيمتين ويقوم بعرض القيمه true اذا ثبت صحه كلتا القيمتين

والا فان معامل التشغيل & يقوم بعرض قيمه false

|| يقوم بعرض true اذا ثبت صحه اي قيمه من القيمتين

! يقوم بعرض ناتج اختبار او فحص القيمه المحدده لصحه المعامل او خطاه

مثال :-

لو كان المتغير JaVa يحتوي على قيمه true فان المتغير !JaVa يحتوي على قيمه false

ولافضل التطبيقات ان تكتبها بالشكل التالي JaVa=! وهذا يؤكد انه في كل خطوه يتم تغيير القيمه

var a=true,b=false

var test1=(a&&a); //test both operands for true

var test2=(a&&b);

var test3=(b&&b);

var test4=(a||b); //test either operand for true

var test5=(a||b);

var test6=(b||b);

var test7=!a;var test8=!b; //invert values

var result="AND\n"

result +="1:"+test1+"2:"+test2+"3:"+test3;

result +="\n\nOR\n";

result +="4:"+test4+"5:"+test5+"6:"+test6;

result +="\n\n!\n7:"+test7+"8:"+test8;

*****(result);

معامل التشغيل الخاص بتعيين القيم :-

معامل التشغيل (=)

مثال a=b

القيمه المساويه a=b

معامل التشغيل (=+)

مثال a+=b

القيمه المساويه a=a+b

معامل التشغيل (=-)

مثال a-=b

القيمه المساويه a=a-b

معامل التشغيل (=*)

مثال a*=b

القيمه المساويه a=a*b

معامل التشغيل (=/)

مثال a/=b

القيمه المساويه a=a/b

معامل التشغيل (=%)

مثال a%=b

القيمه المساويه a=a%b

مثال :=-

var a="**********", b="code"; //assign string values

a+=b; //concatenate strings and assign to

a var c=8,d=4; //assign integer values

c+=d; //add numbers and assign result to

c var e=7.5,f=2.25; //assign float values

e-=f; //subtract f from e and assign result to

e var g=8,h=4; //assign integer values

g*=h; //multiply numbers and assign result to

g var i=8,j=4; //assign integer values

i/=j; //divide i by j and assign result to

i var k=8,I=4; //assign integer values

k%=I; //divide K by I and assign result to

معاملات التشغيل الخاصه بالمقارنه :=-

== معناه التساوي

!= معناه عدم التساوي

< معناه اكبر من

> معناه اقل من

<= معناه اكبر من او يساوي

>= معناه اقل من او يساوي

مثال :=-

var teststrings1=("**********"=="**********");

var teststrings2=("**********"=="**********");

var teststrings1=(1.78==1.78);

var teststrings2=(1.78!=1.78);

var teststrings1=(15<15);

var teststrings2=(15>15);


ملاحظه :=-

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

var teststrings1=("**********"=="**********");

هذه عباره صحيحه انهما متطابقين

var teststrings2=("**********"=="**********");

هذه عباره خاطئه والسبب في اختلاف حرف جي (J) في الاولى اتى كبير وفي الثانيه صغير

معامل التشغيل الشرطي :=-

يعتبر هو معامل المقارنه المفضل

ويقوم باختبار شرطي المعادله لاثبات صحتها او خطأها وعرض نتيجه true او false

ثم يقوم بتنفيذ عباره او اثنين طبقا لنتيجه الاختبار

والتركيب الخاص لهذه هو :=-

(test expression)?if true do this: if false do this;

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

المتصفح

var browser=browserID;//Internet Explore or Netscape

(browser=="IE")?greetIEuser():greetNNuser();



************************************************

الى هنا ينتهي الدرس الثاني وان شاء الله نلقاكم في درس جديد

الجزء الثالث



الدرس الثالث ارجوا انكم تستفيدوا منه

عبارة if الشرطيه :=-

تركيبتها :-

if(test expression)statement to execulte when true;

مثال /

var msg,num

num=7;

if(num%2!=0){

msg="This is an odd number.";

*****(msg);

}

المثال السابق يتم اختبار معامل باقي القسمه (%) لتحديد اذا كانت القيمه الموجوده في المتغير num

تقبل القسمه على 2 ام لا


*** ولاستخدام التركيب السابق للتاكد من ان الرقم فردي استخدم

num(%2==1)

مثال يوضح الامر الخاص بــ if


var username=null;

if(username==null){

username=prompt("please Enter Your Name","");

if(username!="")*****("welcom"+username);

}


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

بالاسم الذي انت ادخلته



العبارات البرمجيه if-else :=-

ويعرف ايضا بالتقسيم الشرطي

if(test expression)do this;else do this;

لاحظ لا بد من وجود فاصله منقوطه قبل كلمه else

var num=2,bool=false;

if(num==1&&bool==1)*****("TEST1 bool:"+bool);

else

if(num==2&&bool==1)*****("TEST2 bool:"+bool);

else

if(num==2&&bool==0)*****("TEST3 bool:"+bool);

else

if(num==3&&bool==0)*****("TEST4 bool:"+bool);



العبارة البرمجية switch :=-

تقوم بالتحقق من صحه الشرط ثم تقدم عنوانا يتلائم مع القيمه الناتجه

وتستخدم الكلمه الرئيسيه case في تحديد العنوان

وتستخدم الكلمه الرئيسيه default في تحديد الكود الافتراضي

ويجب ان تكون نهايه كود العنوان بالكلمه break

var num=2;

switch(num){

case 1:*****("This is case 1 code");break;

case 2:*****("This is case 2 code");break;

case 3:*****("This is case 3 code");break;

default:*****("This is default code");

}

نظام التكرار for :=-

تركيبته

for(initializer,test,increment)statement;

يستخدم initializer في تحديد قيمه البدايه للعداد الخاص بحساب عدد مرات التكرار

في الدورة وقد يستخدم المتغير لهذا الغرض كما انه يطلق عليه "i"

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

كل دورة يزيد العداد

var a=0,b=0;

for(var i=0; i<5; i++){

a+=10;b+=5;

}

*****("FOR LOOP\n\n A is"+a+"...B is"+b);

نظام التكرار For-In :=-

var i=0;a="";

or(property in window){

a+=property+"...";

}

*****(a);

نظام التكرار while :=-

يتم الاختبار الى ان يصل ان عرض القيمه خطا

تحذير /*/*/*/

يقوم نظام التكرار اللانهائي باغلاق النص وتدمير المتصفح

var i=0,num=50;

while(i<15){

num--;

i++;

}

*****("LOOP stopped at" +i+ "\nnum is now" +num);

نظام التكرار Do-While :=-

تستخدم الكلمه الرئيسيه do تدل على نظام التكرار

وتستمر دورة التكرار حتى تصبح النتيجه خاطئه

var i=0,num=50;

do{

num--;

i++;

}while(i<1);

*****("LOOP stopped at" +i+ "\nnum is now" +num);

العبارة البرمجيه Break :=-

var i=0;

while(i<6){

if(i==3) break;

i++;

}

*****("BREAK\n\nLoop stopped at" +i);

العبارة البرمجيه CONTINUE :=-

تستخدم في انهاء الدورة الحاليه

var i=0,str="";

while(i<5){

i++;

if(i==3)continue;

str +=i+"";

}

*****("CONTINUE\n\nLoop stopped:" +i+ "\n\nSeries:"+str);


استخدام البرمجيه With :=-

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

مثال :=-

تحتوي صفحات الويب على الكائن ******** الذي يحتوي على الخاصيه forms للاشاره الى النماذج

الموجوده في صفحه الويب

********.forms.order.user.value="7azm"

********.forms.order.city.value="ksa"


مثال :=-

with(********.forms.order){

user.value= "7azm";

city.value= "ksa";

}


************************************************** ***

اتمنى ان ينال الدرس على اعجابكم

واكون قد وفقه في توصيله اليكم

الجزء الرابع

السلام عليكم ورحمه الله وبركاته

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

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

نبدا بالدرس الرابع اليوم :=-

بسم الله الرحمن الرحيم

************************************************** ********

انشاء المصفوفات :=-

يتم التعامل مع المتغير على انه مصفوفه تستخدم اولا الكلمه الرئيسيه new

في لغه جافا سكربت مع المنشىء Array()

ويمكن تحديد انواع متعدده من البيانات في المصفوفه بتحديد

اسم المصفوفه ثم رقم الفهرس الذي يبدا بصفر

var a=new Array()

a[0]="First";

a[1]="**********";

a[2]="Array";

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

العنصر الثاني ورقم اثنين يعتبر العنصر الثالث

var a=new Array("21st","22nd","23rd");

var b=new Array("Jan,","Feb,","Mar,");

var c=new Array("2001","2002","2003");

*****(a[0]+b[1]+c[3]);

سوف تظهر لك داله التحذير ومكتوب فيها بالشكل هذا


21st Feb 2003

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

******* لتنبيه فقط *******

الان عرفت كيف تمت الطريقه اما فكرت لماذا خرج هذا الحل ام لا

الجواب بسيط جدا انظر الى الحرف a ياخذ رقم صفر اذن ناخذ العنصر الاول منه وهو 21st

الحرف b ياخذ رقم واحد اذن ناخذ العنصر الثاني منه وهو Feb

الحرف c ياخذ رقم اثنين اذن ناخذ العنصر الثالث منه وهو 2003


***** انتهى التنبيه *******

عناصر المصفوفه :=-

يطلق على كل قيمه في المصفوفه اسم عنصر

خاصية length تستخدم لتحديد عدد العناصر التي تشتمل عليها المصفوفه

الخاصيه array.length تشير الى عدد العناصر في كائن المصفوفه

مثال ///

var a=new Array();

a[0]="Much";

a[1]="More"";

a[2]="**********";

var arraysize=a.length;

*****(a[0]+a[1]+a[2]+"\nNo.of elements is"+arraysize


استخدام نظام التكرار لادخال قيم الى عناصر المصفوفه :=-

var str="FILL ELEMENTS LOOP\n\n";

var arr=new Array();

for (var i=0;i<8;i++){

arr[i]="Number is"+i+"\n";

str +=arr[i];

}

*****(str);


اضافه المزيد من العناصر :=-

لاضافه رقم الفهرس الفعلي استخدم الخاصيه array.length

المثال يوضح تعيين الرقم الصحيح 4 للعنصر التالي الذي لا يحتوي على قيمه في المفوفه a


var a=new Array(1,2,3);

a[a.length]=4 //a.length is 3

var b=new Array(5,6,7);

for(var i=0;i<b.length;i++){

a[a.length]=b[i]

}

*****(a.concat());


سلاسل الاحرف الخاصه بالعناصر :=-

array.join() تقوم بتحويل جميع عناصر المصفوفه الى مجموعه من السلاسل الحرفيه

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

var a=new Array();

a[0]="It";

a[1]="isn\'t";

a[2]="rocket";

a[3]="science-";

a[4]="it\'s";

a[5]="just";

a[6]="Java";

*****(a.join(""));

عكس الترتيب الخاص بالعنصر :=-

لو كان هذا جزء من الكتله النصيه

var imgs=new Array("img1.gif","img2.gif","img3.gif");

الناتج الصحيح هنا هو img3.gif-img2.gif-img1.gif

وليس img1.gif-img2.gif-img3.gif

مثال //


var imgs=new Array("img1.gif","img2.gif","img3.gif");

var rev=false;

//slideshow routine is displaying the final image so....

rev = true;

if(rev==true){

imgs.reverse();

rev=false;} //remember to reset the test variable

*****(imgs.join"-");


المصفوفات الفرعيه :=-

array.slice() تستخدم في عمل مصفوفه جديده من المصفوفه الحاليه

مثال //

var a=new Array(1,2,3,4,5,6,7,8);

var b=a.slcie(2,5);

var c=a.slice(1,-1);

var d=a.slice(3);


ترتيب عناصر المصفوفه :=-

array.sort() تستخدم بترتيب القيم الخاصه بعناصر السلاسل الحرفيه بطريقه ابجديه

مثال //

var integers=new Array(3,8,1,9,7,5,4,2,6);

integers.sort(); var floats=new Array(0.5,0.125,0.57,0.25);

floats.sort(); var strings=new Array("7azm","mohammad","ali");

strings.sort();

var str="SORT";

str +="\n\nIntegers array is"+integers.join"-";

str +="\n\nFloats array is"+floats.join"-";

str +="\n\nStrings array is"+strings.join"-";

*****(str);


استخدام المصفوفه في التمهيد لعمليات التحميل الخاصه بالصور واستعراضها :=-

********>

<!--

var pics=new Array("pic1.gif","pic2.gif","pic3.gif");

var preload=new Array();

for(var i=0;i<pics.length;i++){

preload[i]=new Image();

preload[i].src=pics[i]

}

//-->

</******>


المثال السابق استخدم تحميل ثلاث صور حتى تكون جاهزه

عند تشغيل التاثير الخاص بالعرض المتتالي هه الصور

المصفوفه الاولى تحتوي على العنوان الخاص بملف الصورة


الجزء الخامس

السلام عليكم ورحمه الله وبركاته

نبدا الدرس الخامس

********************************

بسم الله الرحمن الرحيم

*******************************

تحديد الوقت والتاريخ بما يتناسب مع زمن الاستخدام :=-

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

بالساعه والتقويم الموجودين في النظام المضيف

ولكي يمكنك الحصول على المعلومات الخاصه بساعه النظام يجب

ان يقوم النص اولا بانشاء كائن date

var now=new Date();

*****(now);

سوف ارفق صوره توضح كيفيه ظهورها انظر اليها :-)


المعلومات الخاصه بالتاريخ :=-

date.getDay تقوم بعرض اليوم كقيمه مسلسله بدايه من السبت Saturday بالقيمه صفر

وحتى القيمه 6 الجمعه friday

يعني هكذا

السبت ياخذ القيمه صفر

الاحد ياخذ القيمه واحد

الاثنين ياخذ القيمه اثنين

الثلاثاء ياخذ القيمه ثلاث

الاربعاء ياخذ القيمه اربعه

الخميس ياخذ القيمه خمسه

الجمعه ياخذ القيمه سادسا


date.getMonth تقوم بعرض الشهر كقيمه مسلسله بدايه من

january تاخذ القيمه صفر

december تاخذ القيمه 11

var days=new Array("sat","sun","mon","tue","wed","thu","fri");

var mons=new Array("jan","feb","mar","apr","may","jun","jul","a ug","sep","oct","nov","dec");

var now=new Date();

var yy=now.getYear();

var mm=now.getMonth();mm=mons[mm];

var dd=now.getDate();

var dy=now.getDay(); dy=days[dy];

*****(dy+""+dd+""+mm+""+yy);

ملاحظه اي خطا بسيط في الكلته النصيه لن ينفذ المطللوب لذلك لاحظ كل قوس قمت بكتابته لاحظ الحروف

انتبه من الاخطاء الاملائيه


المعلومات الخاصه بالوقت :=-

var now=new Date();

var hh=now.getHours();

var mn=now.getMinutes();

var ss=now.getSeconds();

var ms=now.getMilliseconds();

var hi="Good Morning";

if(hh>11)hi="Good Afternoon";

if(hh>17)hi="Good Evening";

var tim=hi+"\n";

tim+="Hours:"+hh+"\n";

tim+="Minutes:"+mn+"\n";

tim+="Seconds:"+ss+"\n";

*****(tim);


التوقيت الحالي :=-

date.getTime() تستخدم للمقارنه بين اثنين من الكائنات الخاصه بالتاريخ من الناحيه العديده

var start = new Date();

var msec1=start.getTime();

var num=0;

for(var i=0;i<250000;i++){

num++;

}

var stop=new Date();

var msec2=stop.getTime();

var diff=(msec2-msec1)/1000;

*****("Time elapsed:"+diff+"seconds");



*****
ملاحظه // اذا كان متصفحك netscape قم بتقليل عدد مرات التكرار من 250000الى 5000
*****


التعرف على Universal Time Clock :=-

يعتبر Universal Time بمثابه التوقيت العالمي توقيت خط جرينتش


var now=new Date();

var hh=now.getHours();

var mn=now.getMinutes();

if(mn<=9)mn="0"+mn

var ss=now.getSeconds();

var utc_hh=now.getUTCHours();

var wet="athens time:"+hh+":"+mn+":"+ss+"\n\n";

var utc="Universal time:"+utc_hh+":"+mn+":"+ss;

*****(wet+utc);

يقوم المثال باستدعاء التوقيت المحلي للغرب الاوربي

***
ملاحظه / اذا كانت الدقائق اقل من عشره فان القيمه ستكون عباره عن رقم واحد

ولذالك فان نص البرمجه سيقوم باضافه صفر اليها
***

المنطقه الزمنيه :=-

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

التقنيه date.getTimeOffest

var now=new Date();

var offset=now.getTimezoneOffset();

var msg;

switch(offset){

case 240:msg="East Coast";break;

case 300:msg="Central";break;

case 360:msg="Mountain";break;

case 420:msg="Pacific";break;

default:msg="all";

}

*****("Welcome to"+msg+"visitors.");



ادخال قيم لتحديد التاريخ والوقت :=-

var now=new Date();

var orig="Original:\n"+now.toString()+"\n\n";

now.setDate(21);

now.setMonth(1);

now.setHours(12);

now.setMinutes(30);

now.setSeconds(15);

now.setFullYear(2005);

var mod="Modified:\n"+now;

*****(orig+mod);



****
toString تقوم بعرض قيمه عباره عن سلسله حرفيه
****

اسلوب تخزين القيم الخاصه بكائن date :=-

date.toGMTString تقوم بتحويل القيم الى سلاسل حرفيه وتقوم بتحويلها الى المنطقه الزمنيه GMT


var now=new Date();

VAR jpn="Tokyo time:\n"+now.toString()+"\n\n";

VAR gmt="UTC time:\n"+now.toGMTString();

*****(jpn+gmt);



استخدام ساعة النظام :=-

ساعه النظام يمكن استخدامها مع تقنيه setTimeout()

window.setTimeout() تقوم باستخدام تقنيه من اجل عرض مربع حوار

التحذير في فتره تصل الى عشر ثواني


var num=0;

function annoy(){

num++;

*****("This is 10-Second Message No:"+num);

window.setTimeout("annoy()",10000);

}

annoy();



الغاء المؤقت الزمني :=-


var num=0,tim;

function advise(){

num++;

if(num==3){

*****("Ok-Itold you twice"); window.clearTimeout(tim);

}else{

*****("This is 10-Second Message No:"+num);

tim=window.setTimeout("advise()",10000);}

}

advise();



اهميه نظام جافا سكربت في clock :=-


<HTML>

<BODY ONLOAD="tick()">

********>

<!--

function tick(){

var now=new Date();

var hh=now.getHours(); if(hh<=9)hh="0"+hh;

var mn=now.getMinutes(); if(mn<=9)mn="0"+mn;

var ss=now.getSeconds(); if(ss<=9)ss="0"+ss;

var tt=hh+":"+mn+":"+ss; ********.f.clock.value=tt;

window.setTimeout("tick()",1000);

}

//-->

</******>

<FORM NAME="f">

<INPUT NAME="clock"TYPE="****"SIZE="10">

</FORM>

</BODY>

</HTML>


انظر الى الصوره الثانيه توضيح لهذا المثال


****
والله يوفقنا واياكم لما يحبه ويرضا


الجزء السادس



بسم الله الرحمن الرحيم

نبدأ في الدرس السادس من دروس الجافا سكربت

يحتوي كائن Math في لغة جافا سكربت على عدد من القيم

الرياضية القياسية الثابتة لتسهيل الإشارة إليه

وتستخدم الأحرف الكبيرة في الإشارة إلى هذه القيم الثابتة المدرجة في الجدول :=-

الجدول فقط من غرض المعرفه لا غير

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

وتستخدم الثوابت في الكائن Math فقط في تطبيقات الخاصه بلغه جافا سكربت


استخدام الثابت PI :=-

يقوم الثابت Math.PI بانشاء امكانيات جيده وتاثيرات فعاله

var pos=new Array(); //array for position data

var xos=30,yos=30; //xy coordinate offsets

var rad=40; //radius of circle

function init(){

for(var i=0;i<4;i++){

pos[i]+=Math.PI/45; //increment degrees

var x=xos+(rad*Math.cos(pos[i]));


var y=yos+(rad*Math.sin(pos[i]));

if(********.layers)********.layers["lyr"+i].moveTo(x,y);

if(********.all)

eval("lyr"+i+".style.top=x;lyr"+i+".style.left=y") ;

}

setTimeout("spin()",100);

}


تقنيه Math.cos و Math.sin تعتبر من مجموعه تقنيات الكائن Math



التقنيات الخاصه بالكائن Math :=-

انظر الى الجدول الثاني المرفق في الرد الثاني (( مع الجدول الاول :-) ))


تقريب الارقام :=-

تستخدم تقنيه Math.round في تقريب الاعداد التي تشمل على علامه عشريه

بحيث تصل الى اقرب رقم صحيح وايضا ابدال الاعداد العشريه الطويله

الى اعداد اقصر


مثال :=-

var a=7.5;

a=Math.round(a);

a="Rounded positive:"+a+"\n";

var b=-7.5;

b=Math.round(b);

b="Rounded Negative:"+b+"\n";

var c=3.764638467915;

c=c*100 //take it up two places

c=Math.round(c); //do the round

c/=100; //take it back down 2 places

c="Commuted Long Float:"+c;

*****(a+b+c);


****
ملاحظه // الرقم السالب لا يقربه الى الذي اكبر منه بل بالذي اقل منه

في المثال السابق اراد تقريب -7.5 تقريبها هو -7
****


تقريب الارقام السالبه والموجبه :=-

تقنيه Math.ceil وهي تقنيه تساعد على تقريب الرقم العشري الى اكبر رقم صحيح

تقنيه Math.floor وهي تقنيه تساعد على تقريب الرقم العشري الى اصغر رقم صحيح

var a=7.5;

var a1="a1:"+Math.ceil(a);

var a2="a2:"+Math.floor(a);

var b=-7.5;

b=Math.round(b);

var b1="b1:"+Math.ceil(b);

var b2="b2:"+Math.floor(b);

var rup="ROUNDING UP\n"+a1+"\n"+b1+"\n\n";

var rdn="ROUNDING DOWN\n"+a2+"\n"+b2;

*****(rup+rdn);


***
عند تقريب القيم السالبه الى اقرب رقم صحيح فان التقريب يصل الى الصفر
***


مقارنه الارقام :=-

التقنيه Math.max تقوم بمقارنه قيمتين كوسيطين ثم تقوم بعرض القيمه الاكبر

في الاثنين الفرق بين القيمتين

التقنيه Math.min نفس السابقه ولكنها تقوم بعرض اقل القيمتين

Math.pow تستخدم لانشاء قيم مربعه ومكعبه للمقارنه

var sq=Math.pow(5,2);

var cb=Math.pow(3,3);

var hi="Round up:"+Math.max(sq,cb);

var lo="Round Down:"+Math.min(sq,cb);

var ng="Round Negative Up:"+Math.max(-5,-4.75);

*****("MAXMIN\n\n"+hi+"\n"+lo+"\n"+ng);



حصر القيمه بين عددين عشوائيين :=-

تقنيه Math.random تستخدم لعرض قيمه عباره عن رقم عشري محصور بين 0.0 و 0.1

فاذا كان المضروب 4

سيعمل على انشاء رقم عشوائي يتراوح بين 0.0 و 4.0

واذا كنت ترغب في التقريب استخدم Math.ceil

var rand1=Math.random();

var rand2=rand1*10;

var rand3=math.ceil(rand3);

var another=Math.ceil(Math.random()*10);



الارقام العشوائيه :=-

var n=new Array(6);

for(var i=0;i<6;i++){n[i]="";}

while(n[5]==""){

var j=Math.ceil(Math.random()*49);

if(n[0]=="")n[0]=j;

else

if(n[1]==""&&j!=n[0])n[1]=j;

else

if(n[2]==""&&j!=n[0]&&j!=n[1])n[2]=j;

else

if(n[3]==""&&j!=n[0]&&j!=n[1]&&j!=n[2])n[3]=j;

else

if(n[4]==""&&j!=n[0]&&j!=n[1]&&j!=n[2]&&j!=n[3])n[4]=j;

else

if(n[5]==""&&j!=n[0]&&j!=n[1]&&j!=n[2]&&j!=n[3]&&j!=n[4])n[5]=j;

}

var str=""

for(var i=0;i<6;i++){str+=n[i]+"";}

*****("LOCKY NUMBERS\n\n"+str);


***
عند تنفيذك لهذا المثال عند كل تحديث للصفحه يطلع لك رقم مختلف
***

الصور العشوائيه :=-

يتم ذلك من خلال علامه الترميز img لخاصه بــ Html وتحديد قيمه pic في سمه scr

var pix=new Array("pic0.gif","pic1.gif","pic2.gif","pic3.gif", "pic4.gif","pic51.gif","pic6.gif");

var rand=Math.floor(Math.random()*7);

********.images.pic.scr=pix[rand];

********.write(rand+":"+pix[rand]);


***************************************




جدول Math

الثابت ما يدل عليه
Math.E الثابت e أساس اللوغاريتم الطبيعي الذي تبلغ قيمته تقريبا 2.71828
Math.LN2 اللوغاريتم الطبيعي لعدد 2
Math.LN10 اللوغاريتم الطبيعي لعدد 10
Math.LOG2E اللوغاريتم الأساس 2 للثابت e
Math.LOG10E اللوغاريتم الأساس 10 للثابت e
Math.PI الثابت pi
Math.SQRT1_2 القيمة المعكوسة للجذر التربيعي للأساس 2
Math.SQRT2 الجذر التربيعي للأساس 2


التقنيات الخاصة بالكائن Math :- الجدول الثاني 

Math.abs() عرض القيمة المطلقة
Math.acos() يكون الناتج عبارة عن جيب تمام الزاوية
Math.asin() يكون الناتج عبارة عن جيب الزاوية
Math.atan() يكون الناتج عبارة عن ظل الزاوية
Math.atan2() نقل الزاوية من المحور x إلى نقطة
Math.ceil() التقريب لأقرب عدد موجب
Math.cos() يقوم بعرض قيمه جيب تمام الزاوية
Math.exp() الناتج عبارة عن أس ثابت e
Math.floor() التقريب لأقرب عدد سالب
Math.log() اللوغاريتم الطبيعي
Math.max() الناتج عبارة عن أكبر العدديين
Math.min() الناتج عبارة عن أصغر العدديين
Math.pow() تقوم بعرض قيمه المقدرة
Math.random() الناتج عبارة عن رقم عشوائي
Math.round() التقريب لأقرب عدد صحيح
Math.sin() تقوم بعرض قيمه جيب الزاوية
Math.sqrt() الناتج عبارة عن الجذر التربيعي
Math.tan() الناتج عبارة عن ظل الزاوية



الجزء السابع






السلام عليكم ورحمه الله وبركاته

اعتذر لتاخري في الدرس وذلك لاسباب الاختبارات

نبدا في الدرس السابع

بسم الله الرحمن الرحيم :=-

************************************************

أشكال السلاسل الحرفيه :=-

عاده ما تتميز بوجود علامات الاقتباس المزدوجه

var a= "********** Strings";

*****(a.length);

يقوم المثال بالمقارنه بين خاصيه array.length

وخاصيه string.length



************

يتم التعامل مع المسافات على انها احرف كبيره

************


مكونات السلاسل الحرفيه :=-

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

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

ويمكنك العثور على هذه الاحرف باستخدام الخاصيه string.chartAt()

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

var str="linger in",newstr="";

var a="First letter:"+str.charAt(0);

var z="Final letter:"+str.charAt(str.length-1);

for(var i=0;i<str.length;i++){

if(str.charAt(i)!="i")newstr+=str.charAt(i);

else newstr+="o"

}

var result="STRINGS\n\n";

result +="New string:"+newstr+"\n";

*****(result+a+"\n"+z);


ربط السلاسل الحرفيه :=-

يستخدم المعامل "+" في الربط بين السلاس الحرفيه ويستخدم على نطاق واسع في الكود الخاص

var num=99;

var flt=98.6;

var bool=true;

var str1="Although";

var str2="F is cited as \"body temperatrue\"";

var str3="\nthe";

var str4"range is from about 97 to";

var str5="F.";

*****(str1+flt+str2+str3+bool+str4+num+str5);



البحث عن حرف معين داخل سلسله حرفيه :=-

استخدم الخاصيه string.index تستخدم في البحث عن اي حرف

او سلسله حرفيه فرعيه يتم تعيينها كوسيط

وفي حاله حدوث التطابق تقوم التقنيه بعرض اول موضع يرد فيه الحرف المطابق او السلسله الحرفيه

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

واذا لم يحدث اي نوع من التطابق فان التقنيه السابق تقوم بعرض القيمه -1

وتستخدم الخاصيه string.indexOf للبحث عن النقط وكذلك الحرف @ داخل السلسله الحرفيه

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

var str="mailme@domain.com";

var att=str.indexOf("@");

var dot=str.indexOf(".");

var hsh=str.indexOf("#");

var fmt=((att!=-1)&&(dot!=-1))?"valid":"invalid";

var res="Format is" +fmt;

res +="\n@ at" +att

res +="\nDot at" +dot

res +="\n\nHash is" +hsh

*****(res);


تقسيم السلسله الحرفيه الواحده :=-

يتم فصل مكونات السلسله الحرفيه باستخدام تقنيه string.split

var str="********** in easy steps";

var ss=str.split("")'

var bk="********** in easy steps|Mike McGrath|$9.99";

var bks=bk.split("|");

var res="Topic :" +ss[0];

res +="\nTitle :" +bks[0];

res +="\nAuthor :" +bks[1];

res +="\nPrice :" +bks[2];

*****(res);


السلاسل الحرفيه الفرعيه :=-

يمكنك الحصول على سلسله حرفيه فرعيه من السلسله الحرفيه الحاليه

باستخدام التقنيه string.substring

التي يجب ان تحتوي على وسيطين لتحديد مواضع البدايه والنهايه للسلسله

الحرفيه الجديده المطلوبه داخل السلسله الحرفيه الاصليه

ويمكنك عرض السلسله الحرفيه الفرعيه من السلسله الاصليه باستخدام التقنيه string.substr


var str="********** in easy steps";

var sub1=str.substring(14,19)+str.substring(0.11)

var sub2=str.substr(14,5)+str.substr(0.10);

var res="Substring method :" +sub1;

res +="\nSubstr method :" +sub2;

*****(res);


التغيير الى السلاسل الحرفيه :=-

******.toString() تقوم بتحويل انواع اخرى من البيانات الى سلاسل حرفيه من خلالها

وتعتبر هذه الداله اساسيه والهدف منها دائما عرض السلسله الحرفيه

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

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

من اجل الكشف عن بعض المعلومات التي تتعلق بالكائن


var num=9;

var nostr=num+9;

var adstr=num.toString()+9;

var img=new Image();

var res="No strings :"+nostr;

res +="\nAdded strings :"+adstr;

res +="\nImage :" +img.toString();

*****(res);


تغيير حاله الاحرف :=-

يمكنك تغيير حاله الاحرف في السلسله الحرفيه باستخدام احدى هذه التقنيتين

string.toUpperCase() او string.toLowerCase

var entry=********.forms[0].****field.value;

if(entry.toLowerCase() =="castle")*****("Accepted");

else *****("Refused");


الحصول على الاعداد من السلاسل الحرفيه :=-

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

parseInt() و parseFloat()

parseInt() تقوم بتحليل السلسله الحرفيه وعرض اول قيمه صحيحه تم تعيينها

parseFloat() تقوم بنفس العمل وبالطريقه نفسها ولكنها تقوم

بعرض اعداد تشتمل على علامه عشريه

isNaN() تقوم بالبحث عن قيمه غير عدديه


var str="66.6% PASS RATE";

var res="Integer :" +parseInt(str);

var res="\nFloat :" +parseFloat(str);

var badstr="PASS RATE66.6%";

res +="\nNon-numeric :"+parseInt(badstr);

res +="\nFound :";

res +=isNaN(parseInt(badstr))?"Character":"Number";

*****(res);


عرض قيم المتغيرات في السلاسل الحرفيه :=-

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

والمراد التحقق منه التقرير بصحته او خطاه


var inputname="****field";

var input****="\"********** ****\"";

eval(********.forms[0]."+inputname+".value="+input****");



كتابة اكواد للسلاسل الحرفيه :=-

string.ChartCodeAt() تتطلب هذه التقنيه تعيين فهرس لكل حرف داخل السلسله كوسيط لها

string.fromChar Code() هذه التقنيه عكس السابقه تمكنك من الحصول على الاحرف من الكود الموحد


var str="Code Fun";

var enc="";

var unc="";

for(var i=0;i< str.length;i++){

enc += str.charCodeAt(i)+",";

}

var ss=enc.split(",");

for(var i=0;i< ss.length;i++){

unc +=String.fromCharCode(ss[i]);

}

*****("Encoded:"+enc+"\nUnencoded:"+unc);


************************************************** *
************************************************** ************
************************************************** ********************

والى هنا نصل الى نهايه الدرس السابع



الجزء الثامن


السلام عليكم ورحمه الله وبركاته

كل عام وانتم بخير

لا تنسوا اخواننا واهلنا في فلسطين بالدعاء في هذا الشهر الفضيل

وبقي علينا ستة دروس ونكمل دروس الجافا التي عددها 14 درسا

نبدا بالدرس الثامن اليوم :=-

بسم الله الرحمن الرحيم

************************************

منشئ الكائن :=-

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

في لغه جافا سكربت والمنشئ ******()

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

var car=new Objcet();

car.maker="Porsche";

car.model="Boxster";

car.color="Red";

*****(car.color+""+car.maker+""+car.model);

***
لاحظ وجود مسافه بين نيو وبروجكت new Objcet
***

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

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

var mondeo=new ******();

mondeo.badge="Mondeo";

mondeo.body="Saloon";

mondeo.doors=4;

mondeo.color="Red";

mondeo.engine="1.8litre";

var car=new Objcet();

car.maker="Ford";

car.model=mondeo;

*****(car.maker+""+car.model.badge+""+car.model.bo dy);



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

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

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

اداء المستند الذي تم انشاؤه بلغه HTML

وتمتلك DOM خصائص حتى يمكنها ان تشتمل على مصفوفة من العناصر في الويب مثل images[] مع

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

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

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

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

العناصر الخاصه بالمصفوفه المتزايده

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

لذلك Netscape DOM تختلف عن DOM

مثال

يقوم هذا المثال بتعيين قيمه للخاصيه ********.bgColor

********.bgColor = "black";


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

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


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

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

Internet Explorer 5.5 و Netscape 4.7

for(propertyName in window)

********.write(propertyName+",");


****
غير كلمه window في الكود في السطر الاول بكلمه ******** لمعرفه المزيد عن كائنات DOM
****


نوع المتصفح :=-

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

لعرض المستند

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

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

التفاصيل الاختياريه

مثال =:- يقوم المثال القادم بعرض المعلومات الاضافيه للمستخدم خاصة بنظام التشغيل

كما يعرض المتصفح الخاص بك


var browser = navigator.appName;

var version = navigator.appVersion;

*****(browser+"\n"+version);


****
في بعض الاحيان يخرج لك نوع المتصفح والاصدار فقط مع اضافه اخر الجمله بحرف "i" وهذا يدل على مستوى

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

التعرف على المتصفح :=-

اضافه خصائص جديده الى الكائن ******** لتشغيل المؤثرات الديناميكيه في dhtml

شركه Netscape قدمت خاصيه ********.layers

بينما شركة مايكروسوفت Microsoft بانشاء خاصيه ********.all

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

بلغه dhtml

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

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

ادوات تصفح اخرى

if(********.all)window.location = "ie-dhtml.html";

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

else {

var oldnn = (navigator.appName == "Netscape"&& parseInt(navigator.appVersion)<4);

location = (oldnn) ? "nn-old.html" : "default.html"; }

}



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

تعتبر ادوات التحكم الخاصه بــ active x بمثابه احدى الطرق المستخدمه في

انشاء سمات الواجهة على سمات الويب

يقوم المثال القادم بكتابة سطر من النص طبقا لنظام التشغيل الذي تحدده

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

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

if(navigator.platform == "Win32")os="Windows95";

********.write("Operating system is" +os);



برنامج Schockwave :=-

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

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

غير متاح

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

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

بشكل كامل في متصفح انترنت اكسبلور


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

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()

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

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

مثال

if(navigator.javaEnabled())

window.location = "javapage.html";

else

window.location = "nonjavapage.html";



*********************
******************************************
************************************************** *************
************************************************** **********************************

انتهى الدرس الثامن




الجزء التاسع


السلام عليكم ورحمة الله وبركاته

هذا الدرس التاسع من دروس جافا سكربت

وارجوا ان ينال على رضاكم

بسم الله الرحمن الرحيم

---*---*---*---*---*---*---*---

عملية التاكيد :=-

تعتبر خاصيه *****() بمثابه تقنيه تابعه لكائن window

ويمكن كتابتها كالاتي

window.*****()

وتعتبر تقنيه window.confirm بمثابه التقنيه الاولى في التقنيتين الخاصتين بكائن window

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

في مربع الحوار الذي يحتوي على زر موافق ok الذي يقوم بعرض true وزر cancel الذي يقوم

بعرض false للنص البرمجي

مثال

var ask = comfirm("Do you wish to proceed?");

var msg;

if(ask)msg="OK button was pushed";

else msg = "Cancel button was pushed";

********.write(msg);



***
في هذا المثال تعتبر ask بمثابه اختصار لـ (true==ask)
***


عمليه الادخال :=-

تستخدم تقنيه window.prompt() لاتاحه امكانيه ادخال البيانات الخاصه بالمستخدم

من لوحه المفاتيح عبر مربع حوار يحتوي على زرين OK و Cancel

وتحتاج هذه التقنيه الى اسم المستخدم ولتحديد الرساله التي سيتم عرضها

وقيمه افتراضيه خاصه بحقل النص واذا لم يتوافر اسم المستخدم في النص الافتراضي

فلن يتم تحديد الرساله

مثال

var user = prompt("Please enter your name...","");

if(user==null||user=="")user="visitor";

********.write("Hi"+user+",welcom to this page");


***
طبعا تستطيع تغيير السؤال الى اللغه العربي

وكذلك الناتج على حسب ما تريد انت

وكلمه visitor هذه تخرج اذا لم يكتب المستخدم اسم وتستطيع تغييرها الى كلمه زائر بالعربي

او مجهول كما هو موجود في اغلب الصفحات
***



اهميه تحديد موضع الاطار :=-

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

كما انه يقوم تخزين العنوان الكامل في خاصيه window.location.herf وتحديد قيمه جديده

له او الكائن window.location نفسه الذي سيقوم بتحميل العنوان في المتصفح

ويتكون العنوان المثالي من

protocol://host/pathname?#hash

مثال في هذا المثال ينتقل location.hash الى الموقع المحدد في الصفحه

var locn = "Href:"+location.href;

var port = "Protocol:"+location.protocol;

var host = "Host:"+location.host;

var path = "Path:"+location.pathname;

var hash = "Hash:"+location.hash

*****(locn+"\n"+port+"\n"+host+"\n"+path+"\n"+hash );



الانتقال بين الصفحات :=-

يحتوي كائن window.history على مصفوفه خاصه بعناوين المواقع التي قمت بزيارتها سابقا

في احدى نوبات العمل داخل المتصفح

وتقوم تقنيتي back() و forward() الخاصه بكائن window.history بنفس وظيفيه ازرار

Backward و Forward في المتصفح

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

window.history.go() التي تقوم بتحديد وسيط واحد من اجل تحديد الموقع من خلال عنوان تقريبي

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

الصفحه السابقه من اجل تكمله حقل النص

(-1)if(required_input=="")history.go;



التحميل :=-

يستخدم كائن window.onload في تحديد اسم الداله التي يتم استدعاؤها في الحال بعد ان

يتم تحميل المستند في المتصفح

وتقوم الداله init() بتعيين قيمة للكائن وغالبا ما تستخدم في تعيين عدد من القيم داخل

نص البرمجه

وتقوم سمه onload في html التي قد تكون مدرجه في body بتحديد داله onload

وينطبق هذا على كائن window.onunload وسمه onload التي تقوم بتحديد الداله بهدف استدعائها

عندما ينتقل المستخدم الى الموقع الجديد

ويقوم كائن window.onunload باستدعاء الداله التي تقوم بانشاء

اطار عندما يغادر المستخدم موقع الويب

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

function goodbye(){

*****("Thanks for calling - Come back soon");

}

window.onunload = goodbye;




استخدام شريط الحاله :=-

يمكن استخدام كائن window.status لعرض الرساله في شريط الحاله الخاص

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

في شريط الحاله او يتم ارجاع شريط الحاله الى الوضع الافتراضي

يمكنك تحديد الرساله الافتراضيه باستخدام window.defaultStatus

مثال

يقوم هذا المثال الذي يستخدم جافا سكربت داخل علامات لترميز html بتحديد الرساله

الافتراضيه واضافه onmouseover للرابط الذي يقوم بعرض رساله اخرى اثناء وجود المؤشر

على الرابط

<BODY ONLOAD = "window.defaultStatus = 'Status Demo'">

<A HREF ="nextpage.htm"

ONMOUSEOVERN ="window.status='Click Here';return true">

Hyper**** Link</A>

****
المثال السابق تكتبه بلغه الترميز html

يعني بالمختصر هكذا يكتب المثال السابق

<html>

<BODY ONLOAD = "window.defaultStatus = 'Status Demo'">

<A HREF ="nextpage.htm"

ONMOUSEOVERN ="window.status='Click Here';return true">

Hyper**** Link</A>

</html>
***


الاطارات المنبثقه :=-

فتح اطار ثان في المتصفح لعرض عنوان موقع آخر

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

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

والسمات المطلوبه

يقوم المثال التالي بفتح اطار فرعي والذي يتبع في تحميله نفس خطوات الاطار الاول

function popup(){

window.open("popup.html","",

"top=40,left=40,width=200,height=100");

}

window.onload=popup;


****
غير الطول والعرض ومكان العرض فوق او تحت او يمين او يسار حسب ما تريده انت
***


سمات الاطارات المنبثقه :=-

السمه Directories وظيفتها اضافه شريط الروابط

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

السمه Left وظيفتها احداثي x الخاص بالاطار على الشاشه

السمه Location وظيفتها اضافه شريط العنوان

السمه Menubar وظيفتها اضافه اشرطه القوائم القياسيه

السمه Resizable وظيفتها تسمح بالتحكم في حجم الاطار

السمه Scrollbars وظيفتها الحصول على اشرطه التمرير عند الحاجه اليها

السمه Status وظيفتها اضافه شريط الحاله

السمه Toolbar وظيفتها اضافه شريط الازرار مع كل من زر back و forward

السمه Top وظيفتها احداثي y الخاص بالاطار على الشاشه

السمه Width وظيفتها تقوم بتحديد العرض في مساحه المستند باستخدام وحدات البكسل

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

ويمكن لجميع السمات الاخرى ان تحتوي على قيمه yes او no ولكن اذا ظهرت السمه في الوسيط

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

مثال

function popup(){

window.open("popup.html","",

"top=40,left=40,width=200,height=100,status");

}


اغلاق الاطار المنبثق :=-

يمكن للاطار اغلاق نفسه من خلال التقنيه windoe.close()

لكن يجب ان يتم تخصيص الاستدعاء الاول لتقنيه window.open() لمتغير معين لانشاء كائن window

ويكتسب كائن window الجديد تقنيه windoe.close() التي يمكن استخدامها في اغلاق اطار منبثق

مثال

المثال التالي يقوم بالتحقق من وجود اطار منبثق قبل اغلاقه عندما تخرج للمستخدم من الاطار الرئيسي

var popwindow;

function popup(){

popwindow = window.open("popup.html","",

"top=40,left=40,width=200,height=100,directori es,

location,menubar,resizable,scrollbars,toolbar");

}

function close_popup() {

if(popwindow != null)popwindow.close();

}

window.onload = popup;

window.onunload = close_popup;



ضبط الحجم :=-

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

window.screen

مثال

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

النت سكيب والانترنت اكسبلور

if(********.all){ //Internet Explorer

var win_w = window.********.body.clientWidth;

var win_h = window.********.body.clientHeight;

}

if(********.layers){ //Netscape

win_w = window.innerWidth;

win_h = window.innerHeight;

}

if(********.all || ********.layers){

var scr_w = window.screen.width;

var scr_h = window.screen.height;

var res = "Resolution:"+scr_w+"x"+scr_h;

var iwin = "Innerwindow:"+win_w+"x"+win_h;

*****(res+"\n"+iwin);

}


***
ولطباعه المستند في اطار المتصفح قم باستدعاء تقنيه window.print()
***


مصفوفه المقاطع :=-

يحتوي كائن window.frames على مصفوفه خاصه بجميع المقاطع في الاطارات التي تم تعريفها

داخل علامات ترميز frameset الموجوده في html

ويمكن للغه جافا سكربت ان تقوم بعرض علامات الترميز من داخل اي مقطع باستخدام تركيب

parent.window.frames[]

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

المصفوفه او القيمه التي تم تحديدها في سمه name داخل علامه الترميز frame التي

كتابتها بلغه html ولذلك فان اي مقطع يحمل اسم main يمكن ان يتم عرضه من داخل اي مقطع

اخر عن طريق parent.window.frames.main

مثال

var framenums = "No.frames:"

+parent.window.frames.length;

var framenames = "\nFrame1:"

+parent.window.frames[0].name;

var framenames+= "\nFrame2:"

+parent.window.frames[1].name;

var framenames+= "\nFrame3:"

+parent.window.frames[2].name;

*****(framenums+framenames);



كيفيه الوصول الى المقاطع داخل الاطار :=-

مثال

function next(){

parent.frames.btm.window.location = "nextpage.htm";

}

function write_header(){

var msg = "Frame2<br>Written by Frame1";

parent.frames.hdr.window.********.write(msg);

}

window.onload = write_header;




معالجة الاخطاء :=-

يمكن تعيين داله مخصصه للتعامل مع الاخطاء لكائن window.onerror من اجل تصحيح الاخطاء

التي تحدث في وقت التشغيل

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

في النص البرمجي ولكن اذا لم يجده فانه يقوم بمعالجه الاخطاء

بنفسه من خلال فتح مربع حوار browser error

وعند اكتشاف الخطا يتم عرض قيمه true في المتصفح للاشاره الى ان الخطا قد تم تصحيحه

في هذا المثال التالي يتم تعيين كل معلومه خاصه بالخطا في داله error-handler

من خلال المتصفح من اجل مصلحه المستخدم

window.onerror = errorhandler;

function errorhandler(msg,url,ln){

*****("Error:"+msg+"\nIn File:"+url+"\nAt Line:"+ln); return
true;

}

//This is a deliberate mistake

********.form[theMistake].value="myButton";


-----------------*------------------------*-----------------*-----------------

انتهى الدرس التاسع

وارجوا ان اكون قد افدتكم في هذا الدرس


مع تحياتي...............

 

 

 

 

 


 


  رد مع اقتباس
إعلانـات جوجل

 

     

 

إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

الانتقال السريع


الساعة الآن 08:26 PM.


Powered by vBulletin® Version 3.8.1, Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
- AJ-TEAM : Content Relevant URLs by vBSEO 3.3.0 TranZ By Almuhajir