ראשי > תפריטי dhtml נשלפים < בנייה לא מושלמת חלק 3

בנייה לא מושלמת: חלק 3

העמוד המקורי של הלקוח צריך להכיל את הקוד המשובץ שמנהל את העניינים. אחת מדרישות העיצוב שנקבעו ע"י הלקוח היא שהקוד צריך לתפקד מתוך תא בטבלה. התא הזה ישוכפל אוטומטית לכל עמוד באתר, והתפריטים הנשלפים צריכים לתפקד מכל עמוד ללא צורך להוסיף אותם ידנית לכל דף.

כל הקוד הזה של בקרת המשימה יכול,אפוא, להיות בחבילה אחת במקום להיות ממפוזר בכל קוד ה-html המקורי. רק הקוד הזה נראה למטה במקום כל הדף. מספיק להגיד שכל הקוד שנחשף כאן נמצא בתא יחיד בטבלה בדף המקורי.

<!-- Main Pop Up Code ("mission control") Begins Here, 
     by Aaron Weiss (aaron@pobox.com) -->
<script language="JavaScript">
if((parseInt
  (navigator.appVersion)>=4)&&
  (navigator.appVersion.toLowerCase().indexOf('win')>0))
 { popAble=true }
else { popAble=false }
</script>
<script language="JavaScript1.2">
<!-- hide code from non-JS browsers

Dhtml נתמכת רק בדפדפנים מגרסה 4 ומעלה, אולם דף הלקוח חייב להתאים גם למשתמשים בעלי דפדפנים ישנים. ראשית, אנו חייבים למנוע מדפדפנים ישנים לפרש את הקוד של בקרת המשימה. ידוע שחלק מטכניקות Dhtml לא פועלות היטב במחשבי מקינטוש. למרות ששני הדפדפנים אמורים לתפקד בצורה דומה במחשבים שונים, במציאות יש הרבה שינויים בהתנהגות dhtml ב"חלונות" מול מקינטוש. קהל המשתמשים של הלקוח השתמש ברובו בגרסת "חלונות", ולכן הוחלט שעדיף למנוע אפשרות של תפריטים נשלפים במחשבי מקינטוש, מאשר להשקיע זמן וכסף באיתור באגים במקינטוש.

הקוד הפשוט למעלה קובע את המשתנה הגלובלי popAble להיות true אם הדפדפן הוא מבוסס-חלונות. אחרת, ערכו יהיה false, והקוד ימנע מהתפריטים להופיע.

function crossBrowser()
{ if (document.all)
  { obj = "popWin.document.all";
    posLeft = ".style.pixelLeft";
posTop = ".style.pixelTop";
posWidth   = ".clientWidth";
posHeight  = ".clientHeight";
visibility = ".style.visibility";
visible = "='visible'";
visible_eng = "visible";
invisible=" = 'hidden'";
invisible_eng = "invisible";
  }
  else
  { obj = "popWin.document.layers";
    posLeft = ".left";
posTop = ".top";
posWidth  = ".clip.width";
posHeight  = ".clip.height";
visibility = ".visibility";
visible = "='show'";
visible_eng = "show";
invisible  = "='hide'";
invisible_eng = "hide";
  }
  clearPop = 0;
  opentopic = null; 
 }

הפונקציה crossBrowser() נראית לנו מוכרת. כמו שראינו קודם ב-popups.html, המטרה המרכזית היא להגדיר מילון מונחים של dhtml לדפדפנים השונים. הרעיון הוא בדיוק כמו קודם. בסוף, המונחים האלה יסייעו בשליפה או הסתרה של התפריטים בחלון. לקראת סוף הפונקציה אנחנו מאתחלים  משתנים גלובליים נוספים שמסייעים במעקב אחרי מספר דברים בהמשך הקוד ( שחרור החלון הנשלף והעברת שמות הנושאים בין הפונקציות).

לעמוד הקודם      לעמוד הראשי        לעמוד הבא