2010-08-18 65 views
0

我有一些代碼,這是幾年前寫的,只能在IE中使用。我想,現在讓它與瀏覽器一起工作。如何使用'prototype'擴展IXMLDOMElement?

因此,代碼通過XHR接收XML,然後閱讀其內容。我有一個「收集」元素。在FF中,它的類型是元素,在IE中是IXMLDOMElement。爲了使統一的閱讀文本值(FF使用的textContent財產,IE 文本)我想補充的方法是這樣的:

Element.prototype.getText = function() { 
    return this.text || this.textContent; 
} 

但是,當我嘗試用IXMLDOMElement做到這一點在IE中,而不是元素,然後我得到錯誤(在IE中),沒有定義IXMLDOMElement。如何定義某種東西,如果是那種類型的東西? (在IE的開發工具中檢查)

任何人都可以給我任何意見,提示如何處理這個?

回答

0

Element接口在Internet Explorer從版本支持8 不幸的是,接口都無法在Internet Explorer版本8

支持,然後再使用innerText屬性(而不是文本)在IE瀏覽器,它是由支持所有HTML元素,並且它具有與FF中的textContent屬性相同的功能。 在JavaScript中,如果this.text爲空且this.textContent是不支持。

Element.prototype.getText = function() { 
    return (this.textContent === undefined ? this.innerText : this.textContent); 
} 

相關鏈接: Interfaces in JavaScript
innerText propertytextContent property

+0

不幸的是,我有IE8和 「元素」 沒有定義 - 在IE8的開發控制檯檢查。 this.innerText也不適合我 - 它在IE中返回undefined。 – singles 2010-08-18 13:44:44

+0

我認爲你的IE8瀏覽器是在IE7模式下(按F12改變它) – gumape 2010-08-18 15:42:36

+0

當我將它改爲IE8(瀏覽器模式和文檔模式爲IE8)時,Element接口爲我工作。謝謝你的幫助! – singles 2010-08-20 07:42:42