2013-08-05 35 views
1

我已將textContent應用於JavaScript中的div。我無法在Internet Explorer中使用它。我怎樣才能得到它在Internet Explorer 8的工作我試圖做:如何讓textContent在Internet Explorer 8(JavaScript)中工作

<div id="price"></div>

和:

document.getElementById("price").textContent = "GMGo is $5.00";

但它並沒有顯示文本 「GMGo爲港幣$ 35」

+2

爲什麼沒有人回答我和大家投票。 – 123

+0

你使用的是什麼版本?根據[this](https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent),也許你使用的是舊版本,這就是爲什麼它不起作用? – Shabab

+3

缺乏例子,沒有例外信息,狡猾的單詞(「apply」,「it」,「work」),目標IE版本不清晰(在IE9中添加了「textContent」支持),這些都成爲一個糟糕的問題。 – Brian

回答

8

ie8不支持textContent,但有一種方法來僞造它:

http://eligrey.com/blog/post/textcontent-in-ie8

if (Object.defineProperty && Object.getOwnPropertyDescriptor && 
    Object.getOwnPropertyDescriptor(Element.prototype, "textContent") && 
    !Object.getOwnPropertyDescriptor(Element.prototype, "textContent").get) 
    (function() { 
    var innerText = Object.getOwnPropertyDescriptor(Element.prototype, "innerText"); 
    Object.defineProperty(Element.prototype, "textContent", 
     { // It won't work if you just drop in innerText.get 
     // and innerText.set or the whole descriptor. 
     get : function() { 
      return innerText.get.call(this) 
     }, 
     set : function(x) { 
      return innerText.set.call(this, x) 
     } 
     } 
    ); 
    })(); 
+1

謝謝!關於這種事情,沒有太多精心編寫的文檔,但很高興看到它至少可以看到JS中如何使用'get'和'set'。嗚呼仍然支持IE8! – phatskat

+1

@phatskat這是一種奇怪的情況,IE支持innerText,FF支持textContent和Chrome支持 – SheetJS

+1

注意,webkit支持innerText和textContent兩者具有稍微不同的值。 textContent將包含HTML元素之間的空格,其中innerText不會。 –

相關問題