我有一些代码,这是几年前写的,只在IE中工作。我想,现在就让它与浏览器一起工作。
因此,代码通过XHR接收XML,然后读取其内容。我有一个元素的“集合”。在FF中,类型是元素,在IE中类型是。为了统一阅读文本值(FF使用textContent属性,IE文本),我想添加如下方法:
Element.prototype.getText = function() {
return this.text || this.textContent;
}但是,当我尝试使用IXMLDOMElement而不是元素在IE中执行此操作时,就会得到错误(在IE中),即IXMLDOMElement没有定义。如果是那样的话,什么东西是不能定义的?(在IE的开发工具中签入)
有人能给我一些建议吗,告诉我如何处理这件事?
发布于 2010-08-18 13:31:05
元素接口在版本8的Internet中得到支持。不幸的是,Internet Explorer在版本8之前不支持接口。
在IE中使用innerText属性(而不是文本),所有HTML元素都支持它,它具有与FF中的textContent属性相同的功能。在JavaScript中,空字符串在用作条件时被求值为false,因此如果this.text为空且不支持this.textContent,则( this.textContent)表达式返回未定义的字符串而不是空字符串。
Element.prototype.getText = function() {
return (this.textContent === undefined ? this.innerText : this.textContent);
} 相关链接:JavaScript中的接口,
innerText性质,textContent性质
https://stackoverflow.com/questions/3512345
复制相似问题