What is new in IE9 – Overlapping Tags

29 באוגוסט 2010

תגובה אחת


 



מה ההתנהגות לפי התקן כשתגים מקוננים אחד בתוך השני.


 

הדוגמא לקוחה מה – MSDN

 

 

מה קורה כשיש לנו את ה – html הבא

 



You should be aware of how <b>this <i>affects</b> script</i>.


 

כמובן שהמילים this affects יופיעו במודגש והמילים affects script יופיעו בהטייה.

 

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

 



var elms = document.getElementsByTagName("i");


 

ב – IE8 יוחזר אלמנט אחד שה – innerText שלו הוא: affects script

ואילו ב – IE9 יוחזרו שני אלמנטים (כל מילה היא אלמנט) מכיוון שהתג i מקונן ב – b.

 

 

(אם היו שואלים אותי – ההתנהגות של IE8 נראית לי יותר הגיונית, חבל שלא אני קובע את התקן)

 

 

הרצת הקוד הבא

 

 



function load() {


    var elms = document.getElementsByTagName("i");


    alert(elms.length);


    for (var i = 0; i < elms.length; i++) {


        var elm = elms[i];


        alert(elm.innerText);


        if (elm.parentNode.tagName.toLowerCase() == "b")


            elm.style.color = "red";


    }


}


 

ב – IE8 תצבע כמובן באדום את סוף המשפט ואילו ב – IE9 רק המילה affects תצבע באדום.

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

כתיבת תגובה

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

תגובה אחת

  1. הפנר אבי29 באוקטובר 2010 ב 10:26

    שלום שלמה
    באם המשפט היה כתוב תיקני
    גם ie8 היה מציג את התוכן נכון
    הטקסט צריך להכתב בצורה
    You should be aware of how this affects script.

    באם תבדוק את ה html ב expression-web
    ותבחר tools
    compatible-report
    ה expression-web יעיר לך על ה המשפט הלא תקין

    הגב