מי תומך בגישה ישירה לאלנטים ב – DOM בלי להפעיל את document.getElementById

24 במרץ 2011

2 תגובות


 


אני מניח שהקוד הבא די ברור

 



<div id="rightCell">


</div>


 


<script type="text/javascript">


    var rightCell = document.getElementById('rightCell');


    rightCell.appendChild(document.createTextNode('Shlomo Goldberg'));


</script>


 

זה בסך הכול יוסיף ל – div את הטסקט Shlomo Goldberg.

 

 

אבל מה יקרה אם נריץ את הקוד הבא:

 



<div id="rightCell">


</div>


 


<script type="text/javascript">


    rightCell.appendChild(document.createTextNode('Shlomo Goldberg'));


</script>


 

אני לא יודע מה התקן מגדיר (חיפשתי ולא מצאתי)

בפועל בדקתי בדפדפנים שמותקנים לי על המחשב.

 

IE בכל הגרסאות ובכרום זה יעבוד מכיוון שהם יודעים לקשר בין המשתנה לאלמנט עם ה – id ב – DOM,

 

לעומת זאת ב – Firefox הקוד יכשל מכיון שהמשתנה rightCell מחזיר undefined.

 

 

אשמח לקבל הפניות לתקן.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

2 תגובות

  1. רון קליין25 במרץ 2011 ב 22:58

    הי שלמה, שאלה מעניינת.
    נראה לי שזה תלוי במימוש ברמת הדפדפן עצמו. נכון להיום, אני לא חושב שיש תקן אחיד למימוש ברמת הדפדפן. מה שכן מצאתי זה RFC ל DOM, בלינק הבא:
    http://tinyurl.com/99bdj
    אבל שים לב שזה למימוש של DOM, לא ל host של ה DOM.

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

    ואגב, כמה אחורה ב IE בדקת? הגעת גם ל 4? או ל 3.02? 🙂

    –רון

    הגב
  2. אלכס26 במרץ 2011 ב 20:05

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

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

    לא מבין למה באמת Chrome תומך בזה .. לא נקודה לטובתו .

    הגב