當我們使用 innerHTML 將字串寫入指定的 tag 內時,若該字串含有『&』字元,若『&』字元後全是『英數字』組成的字串,那麼你會發現『&』字元連同後面的『英數字』字串全消失了…
 
    程式:
        var div = document.getElementById("testDiv");
        div.innerHTML = "abc&123abc";


    結果:
        abc
 
笨鳥猜測可能的原因:
    因為『&』為表現特殊字元的開頭符號(如:大於為>),因此IE在遇到『&』時會自動進行轉換動作,此時如果『&』後面全都是『英數字』,那麼會將『&』連同緊跟在後的『英數字』一併送去解析,但由於找不到相關的特殊符號,所以『&』與其後的『英數字』就會全都消失不見。
 
解決方法:
    在字串後加上一個『空白』字元,即可解決此問題。
 
其他:
    使用 innerHTML 將字串寫入Tag內時,Browser 會自動將『&』轉成『&』(只會針對『&』字元,其他特殊不轉,可能是『&』為此類特殊字元的開頭符號,所以要特別進行轉換)。
 
注意:
    此問題不會發生在 Firefox 上!!!
arrow
arrow
    全站熱搜

    大笨鳥 發表在 痞客邦 留言(0) 人氣()