ראשי > תפריטי 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()
מבצעת את התרגום בקלילות. מיד נראה אותה
בפעולה.