ראשי > תפריטי dhtml נשלפים > לבנות ולהרוס

לבנות ולהרוס

function popIt()
{ popWin=window.open
("popups.html","PopUp",
"toolbar  = no,
location   = no,
directories = no,
status = no,
menubar = no,
scrollbars = no,
resizable  = yes,
dependent  = yes,
alwaysRaised = yes,
width = 250,
height = 100");
  popWin.resizeTo(0,0);self.focus();}
function cleanUp()
{ if(!popWin.closed) {popWin.close();} }
//startup script
if (popAble) {
 crossBrowser();
 popIt();
 self.focus();
 window.onunload = function (e) {cleanUp()};
}
// end hiding code -->
</script>
<!-- end of pop up code -->

כאשר הדף המקורי של הלקוח נטען, משובץ בסקריפט בקרת המשימה, הוא מריץ את הפונקציה popIt(), שנקראת ע"י  ההצהרה “startup script” שלמעלה. בפשטות, הפונקציה popIt() יוצרת את חלון התפריט, וע"י מיקוד הפוקוס בחלון הדפדפן, הפונקציה מחביאה ביעילות את התפריט. שינוי גודל החלון ל0-על 0 פיקסלים עובד רק באקספלורר, שמקטין את החלון ומורידו לגמרי משולחן העבודה. נטסקייפ נוויגטור מסרב להקטין את החלון למידה מ100- על 100 פיקסלים. נשים לב שערך התכונה dependent, בפרמטרים של open() , נקבע   ל-yes. זה מאפשר לחלון שנוצר להיות חלון תלוי, וכפי שנרמז, הוא לא חלון עצמאי לגמרי. בנטסקייפ נוויגטור, חלון תלוי ייסגר כאשר חלון הורה שלו נסגר. לפי מסמכים של אינטרנט אקספלורר, חלון תלוי לא יכול להכיל הוראות סגירה או להופיע בשורת המשימות. למרות זאת, החלון הנתמך אצלנו עושה זאת, מכיוון שתכונות הנתמכות כנראה לא יושמו בפועל באקספלורר (לקח: אל תאמינו לכל מה שאתם קוראים).

ערך המשתנה הבוליאני popAble יהיה true רק אם הדפדפן הוא מגרסה 4+ ורץ במבנה של חלונות. הבדיקה הזו מונעת מסקריפט בקרת המשימה מלנסות להריץ את התפריטים הנשלפים בגרסה לא מתאימה.

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

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