ראשי > תפריטי dhtml נשלפים > מילון חוצה דפדפנים

מילון חוצה דפדפנים

function crossBrowser()
{ if (document.all)
  //Microsoft syntax
  { obj = "document.all";
    innerLayersLength = ".children.length";
innerLayer = ".children";
posLeft = ".style.pixelLeft";
posTop = ".style.pixelTop";
posWidth  = ".clientWidth";
posHeight  = ".style.pixelHeight";
posHeight2 = ".clientHeight";
bgColor = ".style.backgroundColor";
visibility = ".style.visibility";
visible = "='visible'";
visible_eng = "visible";
invisible  = "='hidden'";
invisible_eng = "invisible";
    startItemDiv    = "<div class=\"item\"
onMouseOver =\"this.style.backgroundColor='"+
menuHIGH+"';\"
onMouseOut =\"this.style.backgroundColor='"+
menuBGCOLOR+"';\">";
headlineDiv ="<div class=\"headline\">";
closeItemDiv ="</div>";
  
  }
  else
  //Netscape syntax
  { obj = "document.layers";
    innerLayersLength = ".document.layers.length";
    innerLayer = ".document.layers";
posLeft = ".left";
posTop = ".top";
posWidth   = ".clip.width";
posHeight  = ".clip.height";
posHeight2 = ".clip.height";
bgColor = ".bgColor";
visibility = ".visibility";
visible = "='show'";
visible_eng = "show";
invisible  = "='hide'";
invisible_eng = "hide";
startItemDiv = "<layer id=\"itemlayer\" left=0
onMouseOver =\"this.bgColor='"+
     menuHIGH+"';clearTimeout(opener.clearPop);\"
  onMouseOut =\"this.bgColor='"+
     menuBGCOLOR+"';\"
bgcolor =\""+menuBGCOLOR+"\">";
headlineDiv = "<layer id=\"headlinelayer\"
left = 0
width = 250
position =\"absolute\" 
    z-index = 1 bgcolor=\""+headBGCOLOR+"\">";
    closeItemDiv = "</layer>";

  }
}

הפונקציה crossbrowser() חביבה מאוד. היא משמשת לגישור על הפער שבין התמיכה   ב-DHTML בנטסקייפ נוויגטור 4 לבין התמיכה באינטרנט אקספלורר 4. כמו מילון של מונחים, הפונקציה הזאת לוקחת סידרה של שמות משתנים סטנדרטיים, למשל obj , ומגדירה את המובן האמיתי שלהם בכל דפדפן. כך, למשל, דפדפן אחד יתייחס למונח רובד דרך document all  והדפדפן השני יתייחס למונח זה דרך document layers 

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

המפתח לפטנט הזה תהיה הפונקציה eval() ב-JavaScript . הפונקציה הזו מקבלת כקלט מחרוזת, ומחזירה כפלט את המחרוזת הזו כמשפט של JavaScript . לדוגמה, נגיד ואנו מגדירים משתנה בשם closeme :

closeme="self.close()";

ההצהרה הבאה תהיה שוות ערך למונח self.close() .

eval(closeme);

בכל מקרה, הפונקציה crossbrowser() מבצעת את התרגום בקלילות. מיד נראה אותה בפעולה.

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