פרק 10: שילוב של JavaScript ו-HTML
·
הקדמה
·
שילוב
פקודות ה-JavaScript בתוך מרכיב ה-SCRIPT
·
כתיבת
פקודות ה-JavaScript בקובץ נפרד
·
שילוב
קוד ב-JavaScript כערכן של תכונות של מרכיבי HTML
·
המרכיב
NOSCRIPT
·
תרגילים
הקדמה
קיימות
מספר דרכים אפשריות לשילוב של פקודות ב-JavaScript
בתוך מסמך HTML. אחת
הדרכים השכיחות ביותר כוללת את הוספת התגיות <SCRIPT>
ו- </SCRIPT>
אל תוך מסמך ה-HTML,
והוספת הפקודות ב-JavaScript
אל התחום שביניהן. כך, למעשה, היה בכל הדוגמאות עד כה. זוהי איננה הדרך היחידה,
וקיימות דרכים נוספות שבהן ניתן לשלב פקודות ב-JavaScript בתוך מסמך ה- HTML.
פרק
זה מציג את האפשרויות השונות שקיימות בבואנו לשלב בין JavaScript לבין HTML.
חלקו הראשון של הפרק דן באפשרות המוכרת להוספת התגיות <SCRIPT>
ו- </SCRIPT>
אל מסמך ה-HTML,
וכתיבת הפקודות ב-JavaScript
ביניהן. יתר חלקיו של הפרק מציגים את האפשרויות האחרות אשר מאפשרות לשלב בין JavaScript לבין HTML.
שילוב פקודות ה-JavaScript בתוך מרכיב ה-SCRIPT
אפשרות
זו הוצגה בכל הדוגמאות שהיו עד כה. מרכיב ה-SCRIPT כולל את התגיות <SCRIPT> ו- </SCRIPT>, וביניהן הפקודות ב-JavaScript.
ניתן להוסיף את מרכיב ה-SCRIPT
אל מסמך ה-HTML
יותר מפעם אחת, ונהוג למקמו בתוך מרכיב הראש ולא בתוך מרכיב הגוף (למרות שזאת גם
כן אפשרי).
הסיבה
לכך שאת מרכיב ה-SCRIPT
נהוג להוסיף אל תוך מרכיב הראש היא כדי להימנע ממצב שבו יש קריאה להפעלה של
פונקציה כשטעינתה עדיין לא הסתיימה באופן סופי (הפונקציה טרם נטענה אל הדפדפן).
בהמשך תוצג האפשרות לקשור בין אירועים שמתרחשים במסמך ה-HTML להפעלתן של פונקציות שנכתבו ב-JavaScript.
אל
תוך התגית <SCRIPT> נהוג להוסיף את התכונה LANGUAGE
ולקבוע את ערכה כך שיהיה שווה לשפת הסקריפט שבה נכתבו הפקודות בין שתי
התגיות. יש לזכור כי JavaScript איננה שפת הסקריפט היחידה שקיימת. קיימות שפות נוספות כגון VBScript. כמו כן, באמצעות תכונה זו (התכונה LANGUAGE) ניתן גם לציין את הגירסה של שפת הסקריפט שבה נעשה שימוש. כך
לדוגמא, באמצעות כתיבת תגית ההתחלה של המרכיב SCRIPT באופן הבא:
<SCRIPT
LANGUAGE="JavaScript1.2">
מציינים
ששפת הסקריפט שבה נעשה שימוש היא JavaScript
מגרסה 1.2.
אם
לא מוסיפים אל תוך התגית <SCRIPT> את התכונהLANGUAGE אז הדפדפן מתייחס אל הסקריפט על פי גרסת
ברירת המחדל שלו. כמו כן, אם הדפדפן איננו תומך בגרסה שצוינה באמצעות התכונה LANGUAGE אז הסקריפט לא יפעל. מסיבה זו, כדאי לעתים להוסיף מספר מרכיביSCRIPT
כאשר כל אחד מהם מכיל JavaScript
מגרסה אחרת.
לדוגמא:
<SCRIPT
LANGUAGE="JavaScript">
//definitions of
the functions according to JavaScript 1.0
</SCRIPT>
<SCRIPT
LANGUAGE="JavaScript1.1">
//definitions of
the functions according to JavaScript 1.1
</SCRIPT>
<SCRIPT
LANGUAGE="JavaScript1.2">
//definitions of
the functions according to JavaScript 1.2
</SCRIPT>
<SCRIPT
LANGUAGE="JavaScript1.3">
//definitions of
the functions according to JavaScript 1.3
</SCRIPT>
לחילופין,
ניתן לשלב בתחילת המסמך מספר בלוקים של SCRIPT
אשר יפעלו בהתאם לגרסת ה-SCRIPT
שנתמכת על ידי הדפדפן, ויגרמו למעבר הדפדפן אל דף ה-HTML המתאים בהתאם.
לדוגמא:
<SCRIPT
LANGUAGE="JavaScript1.3">
location.replace("js1.3/index.html");
</SCRIPT>
<SCRIPT
LANGUAGE="JavaScript1.2">
location.replace("js1.2/index.html");
</SCRIPT>
<SCRIPT
LANGUAGE="JavaScript1.1">
location.replace("js1.1/index.html");
</SCRIPT>
<SCRIPT
LANGUAGE="JavaScript">
location.replace("js1.0/index.html");
</SCRIPT>
נהוג
להוסיף סביב הפקודות שכתובות ב-JavaScript
את סימני ההערה שמקובלים ב-HTML: '--!>' בהתחלה ו '<--' בסוף. כמו
כן, את השורה שבה מופיע הסימן '<--' יש להתחיל ב-// כדי שפקודות ה-JavaScrip תפעלנה כהלכה. הסימן // מהווה סימן להערה ב-JavaScrip, ואם הוא לא יקדים את הסימן '<--' תגרם תקלה בפעולת הדפדפן.
יש
למקם את סימני ההערה על פי הדוגמא הבאה:
<SCRIPT>
<!--The
beginning of the JavaScript commands
כאן
ממקמים את הפקודות ב-JavaScript
// The end of the
JavaScript commands -->
</SCRIPT>
באמצעות
הוספת סימני ההערה האמורים, דפדפנים שלא תומכים ב-JavaScript לא יציגו את הפקודות ב-JavaScript
כאילו היו שורות טקסט שיש להציג.
כתיבת פקודות ה-JavaScript בקובץ נפרד
את
הפקודות ב-JavaScript
ניתן לכתוב בקובץ נפרד, ולציין את שילובו במסמך ה-HTML באמצעות הוספת התכונה SRC
אל תוך התגית <SCRIPT>. את ערכה של תכונה זו יש לקבוע כך שיהיה שווה ל-URL של הקובץ. בדרך זו ניתן לכתוב פונקציות ב-JavaScript ולשלב את הפעלתן ביותר ממסמך HTML אחד.
כאשר
מוסיפים את התכונה SRC
אל תוך התגית <SCRIPT> פקודות ב-JavaScript
אשר תיכתבנה בין שתי התגיות לא יקבלו כל התייחסות מצד הדפדפן.
יש
לתת לקובץ הנפרד שמכיל פקודות ב-JavaScript שם עם הסיומת js. כמו כן, יש להגדיר בשרת שבו שומרים את קבצי האתר, כי הסיומת js תתאים לסוג ה-MIME
הבא:
application/x-javascript.
כדי
להגדיר בשרת את שהוסבר, יש להוסיף לקובץ mime.types
אשר נמצא בשרת בספריה config
את השורה הבאה:
type=application/x-javascript exts=js
התכנית
הבאה מדגימה את מה שהוסבר. הקובץ הראשון הוא מסמך ה-HTML שיוצג כאשר הוא כולל בתוכו הפעלה של פונקציה שכתובה ב-JavaScript, וששמורה בקובץ נפרד (הקובץ השני).
<!-- file name : usingJSFileDemo.html -->
<!--
2000(c) Zindell Publishing House Ltd. -->
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
4.0//EN">
<HTML>
<HEAD>
<TITLE>usingJSFileDemo.html</TITLE>
<SCRIPT
SRC="factorial.js">
</SCRIPT>
<SCRIPT
LANGUAGE="JavaScript1.3">
document.write("The
factorial of 7 is : " + factorial(7));
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
להלן
הקובץ השני.
// file name : factorial.js
// 2000(c) Zindell Publishing House Ltd.
function
factorial(num)
{
var
result=1;
while (num>0)
{
result *= num;
num--;
}
return result;
}
שילוב קוד ב-JavaScript כערכן של תכונות של מרכיבי HTML
ניתן
לקבוע את ערכה של תכונה שיש למרכיב HTML
כשווה לביטוי ב-JavaScript.
את הביטוי שכתוב ב-JavaScript
יש למקם בתוך סוגריים מסולסלות, לפניהן יש להוסיף את הסימן & ואחריהן יש להוסיף
את הסימן ;. אפשרות זו איננה
נתמכת על ידי Internet Explorer.
התכנית
הבאה מדגימה את האפשרות לקבוע את ערכה של תכונה שיש למרכיב HTML כך שיהיה שווה לערכו של ביטוי ב-JavaScript.
<!-- file name :
JSexpressionsAsAttributeValues.html -->
<!-- 2000(c) Zindell Publishing House Ltd.
-->
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
4.0//EN">
<HTML>
<HEAD>
<TITLE>JSexpressionsAsAttributeValues.html</TITLE>
<SCRIPT
LANGUAGE="JavaScript1.2">
num=50;
function getLength()
{
num+=50;
return num;
}
</SCRIPT>
</HEAD>
<BODY>
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
<HR WIDTH="&{getLength()};" ALIGN="LEFT">
</BODY>
</HTML>
המרכיב NOSCRIPT
זהו
מרכיב HTML אשר כולל את תגית ההתחלה <NOSCRIPT>
ואת תגית הסיום </NOSCRIPT>. מרכיב זה משמש לקביעת שורות קוד ב-HTML אשר נרצה בהצגתן כאשר הדפדפן איננו תומך ב-JavaScript. אם הדפדפן תומך ב-JavaScript
אז כל מה שמצוין בתוך מרכיב זה לא יופיע על המסך.
התכנית
הבאה מדגימה את השימוש במרכיב
זה.
<!-- file name : noscriptDemo.html -->
<!-- 2000(c) Zindell Publishing House Ltd.
-->
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
4.0//EN">
<HTML>
<HEAD>
<TITLE>noscriptDemo.html</TITLE>
<SCRIPT
LANGUAGE="JavaScript1.2">
num=50;
function getLength()
{
num+=50;
return num;
}
</SCRIPT>
<NOSCRIPT>
<H2>This browser
doesn't support JavaScript</H2>
</NOSCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
תרגילים
1. כתוב/כתבי
פונקציה ב-JavaScript אשר מחשבת את ערכו של איבר בסדרת פיבונאצ'י על פי מספרו הסידורי אשר נשלח
אליה בעת הפעלתה. הפונקציה תישמר בקובץ עם הסיומת js, והשימוש בה ייעשה מתוך קובץ אחר אשר יישמר עם הסיומת html,
כיוון שיהווה מסמך HTML.
2. כתוב/כתבי מסמך
ב-HTML אשר יכלול בתצוגתו פירמידה של כוכביות. פירמידה זו תיווצר באמצעות
פונקציה מתאימה אשר תופעל מתוך לולאה, ובכל פעם שתופעל תגרום לציור של שורת
כוכביות שמספרן יישלח אליה כארגומנט.
2000 © All the rights reserved to Haim Michael & Zindell
Publishing House Ltd.
No
parts of the contents of this paper may be reproduced or transmitted in any
form by any means
without
the written permission of the publisher !
This book can be used for personal use only !!!
Brought
to you by Zindell
(http://www.zindell.com)
לנוחיותך, להלן תוכן
העניינים של הספר: