ראשי > dhtml חוצה דפדפנים >  מאמר חלק 1 > הבדלים בין דפדפנים

הבדלים בין דפדפנים בנושא מיקום דינמי

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

  בנטסקייפ, ניתן לגשת אל האלמנט הממוקם דרך העצם של המסמך או ישירות מהמסמך. ניתן למצוא את האלמנט הזה בתוך מערך של layers. כך, אם עמוד האינטרנט מכיל את בלוק ה-div הבא:

<DIV id="test" style="position:absolute; left: 100; top: 150">
some contents
</DIV>

 ניתן ללחוץ כאן כדי לראות את הקוד בפעולה

 שינוי מיקום האלמנט תוך שימוש ב-JavaScript יכול להיעשות בטכניקה הבאה:

document.test.left = 10;
document.test.top = 10;

או בטכניקה הזו:

document.layers["test"].left = 10;
document.layers["test"].top = 10;

למיקרוסופט יש דרך שונה ליישום שינויי HTML דינמיים. ראשית, ניתן לגשת אל האלמנט דרך מספר טכניקות. טכניקה אחת היא לגשת אל האלמנט ישירות לפי שמו או לפי שם מזהה (identifier) שהוצמד לו. טכניקה שנייה משתמשת ב-all, שהוא חלק אינטגרלי מהעמוד, וניגשת אל האלמנט ישירות תוך שימוש בשיטה item, או בעקיפין תוך שימוש בשיטת התגים לגישה לקבוצת אלמנטים. בנוסף, כל שינוי בעיצוב CSS, כולל שינוי מיקום, מתבצע דרך העצם או התכונה style. כך, יישום שינוי במיקום עבור בלוק ה-div, שהוזכר קודם, ניתן להשיג תוך שימוש ב:

test.style.pixelLeft = 10;
test.style.pixelTop = 10;

או ע"י שימוש בטכניקה:

document.all.item("test").style.pixelLeft = 10;
document.all.item("test").style.pixelTop = 10;

מיקרוסופט תומכת ביותר מתכונה אחת שמייצגת את מיקומו של השמאלי של אלמנט. ב-IE 4.0 התכונה “left” היא בעצם מחרוזת עם יחידת מידה. כדי לתת ערך בפיקסלים לתכונות top או  left, על המפתח להשתמש בתכונות  pixelLeft או pixelTop.

  תוכל לחבר קוד עבור כל דפדפן בכל פעם שתרצה לבצע שינוי, כמו שמופיע כאן:

if (navigator.appName == "Microsoft Internet Explorer") {
   test.style.pixelLeft = 10;
   test.style.pixelTop = 10;
   }
else {
   document.layers["test"].left = 10;
   document.layers["test"].top = 10;
   }

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

  אם כן, מה הפתרון לבעיית ה-DHTML? יצירת עצמים חוצי דפדפן, והסתרת ההבדלים בין הדפדפנים.

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