當我們想要取得頁面上 <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);
}
- Apr 29 Tue 2008 23:39
IE 下取得 embed 的 type 屬性值 (土法鍊鋼法)
close
全站熱搜
留言列表
發表留言