DCSIMG
מי תומך בגישה ישירה לאלנטים ב - DOM בלי להפעיל את document.getElementById - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

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

 

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

<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.
 
 
אשמח לקבל הפניות לתקן.

תוכן התגובה

רון קליין כתב/ה:

הי שלמה, שאלה מעניינת.

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

http://tinyurl.com/99bdj

אבל שים לב שזה למימוש של DOM, לא ל host של ה DOM.

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

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

--רון

# March 25, 2011 10:58 PM

אלכס כתב/ה:

אכן הגישה הישירה לפי שם פקד , זו המצאה של Microsoft .

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

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

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

# March 26, 2011 8:05 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 7 and 8 and type the answer here:


Enter the numbers above: