當我們想要取得頁面上 <embed> 的 type 屬性時,在 Firefox 下可以很輕鬆的用 type 屬性來抓值,如:
 
var obj = document.getElementsByTagName("embed");
for(var i=0; i<obj.length; i++) {
    alert(obj[i].type);
}
 
但是在 IE 裏,這個 type 屬性卻是 undefied …
 
雖然查過 M$ 的 MSDN,上面也的確記載 embed 有 type 這個屬性,但是實作時 IE 還是老實不客氣的回傳說沒有 type 這個屬性,無奈之下只能用土法鍊鋼的方式列出 embed 物件中所有的屬性,終於讓我找到可以用 attributes 來抓值:
 
var obj = document.getElementsByTagName("embed");
for(var i=0; i<obj.length; i++) {
    alert(obj[i].attributes("type").value);
}
 
不過這樣的語法在 Firefox 上又行不通了,最後我在 Firefox 上將 attributes 印出來,發現它其實是 NamedNodeMap 物件,於是到 http://www.w3schools.com/dom/dom_namednodemap.asp 查了一下,發現可以用下列的方法取得 type 屬性值,於是將程式改成下面的範例就可以在 IE 和 Firefox 上通吃了:
 
var obj = document.getElementsByTagName("embed");
for(var i=0; i<obj.length; i++) {
    alert(obj[i].attributes.getNamedItem("type").value);

 

arrow
arrow
    全站熱搜

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