2009年5月21日 星期四

javascript 的 innerText 與 textContent

現今的網路世界有多種瀏覽器:Microsoft 出版的 Internet Explorer(ie),自由軟體組織出版的 Firefox(ff),蘋果電腦出版的 Safari,還有 Google 也出版了 chrome 瀏覽器。雖然 javascript 有一個標準組織在維護其標準,可是廠商在發展瀏覽器時都有一些差異,因此在撰寫 javascript 程式時必須考量這些不同。

此處要談的就是 javascript 在處理物件的內文時,其屬性名稱在 ie 是用 innerText,在 ff 是用 textContent,而 safari 及 chrome 可以使用 innerText 與 textContent。如下表:

屬性名稱ie 8ff 3.0.1Safari 3.1.2chrome 0.2.149.30
innerText可用未定義可用可用
textContent未定義可用可用可用


所以撰寫程式時必須先作檢查,然後使用正確的屬性名稱。下面這段簡單的程式就可以讓你的 javascript 在不同的瀏覽器上正確執行。

var s='Hello world';
var obj=document.getElementById('text');
if(obj.textContent != undefined)
obj.textContent=s;
else
obj.innerText=s;

執行結果:

Hello world

沒有留言: