作者TKirby ( :D)
看板Web_Design
標題Re: [問題] innerHTML不符合 DOM?
時間Sat Apr 29 18:08:20 2006
我覺得 innerHTML 你就用吧, 不管標不標準
重點是在於大家用不用
大家都用的東西遲早會被群眾暴力變成標準
真要取代 innerHTML 的話,
就要用 createElement, appendChild, insertBefore, removeChild
getElementById, getElementsByTagName 等等的函式
舉個例子, 現在想產生一個連結
那就用這段程式碼 :
var link = document.createElement("a");
link.href = "
http://0rz.net/9d1iv";
link.appendChild(document.createTextNode("[捏他阿魯]死亡筆記本大結局!"));
document.body.insertBefore(link, document.body.childNodes[0]);
這樣一個連到
http://0rz.net/9d1iv ,
文字是 "[捏他阿魯]死亡筆記本大結局!" 的連結就會被加到網頁最前面了.
如果用 innerHTML 的話就會是這樣
document.body.innerHTML = "<a href='0rz.net/9d1iv'>" +
"[捏他阿魯]死亡筆記本大結局!</a>" + document.body.innerHTML;
※ 引述《ileadu (用過的都說「棒」!)》之銘言:
: 我看書上說, innerHTML 不符合 DOM
: 那 javascript 有什麼其他的做法可以取代 innerHTML 嗎?
: 搞了半天 >"<
: 我是想替換 HTML 標籤內的內容
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.52
※ 編輯: TKirby 來自: 140.112.30.52 (04/29 18:09)
推 ileadu:你這方法我也用了,但還是只有在IE下有效果。 04/29 18:29
→ ileadu:ps. 我沒說清楚,其實我是用在onload 裡面,但好像有規定, 04/29 18:30
→ ileadu:onload 裡面不能放innerHTML,雖然我已換用你給的這種作法 04/29 18:30
→ ileadu:但是 Mozilla Firefox and Opera 都不吃~ 04/29 18:31
→ ileadu:我再自己多嘗試好了,謝謝先 04/29 18:32
推 ileadu:Firefox不吃,但Web developer也沒提示說javascript有錯 04/29 18:48
→ ileadu:我說的不吃是指,在瀏覽器上看不到效果…就是沒反應的意思 04/29 18:49
推 franklai:我在Firefox 1.5.0.2, Opera 8.54試都ok耶 04/29 18:56
→ franklai:板上搜尋「不想用innerHTML」,推文有個連結 04/29 18:57
→ franklai:應該能解決你的問題 04/29 18:58
推 chengong:請問一下insertBefore是何用意? 04/29 21:28
推 ileadu:...我搞錯了! 已用你說的方法 innerHTML解決…謝謝 04/29 23:04