扩展“text"属性IXMLDOMElement在Chrome中导致工作
Extend "text" property of IXMLDOMElement to cause work in Chrome
我正在使用的web应用程序是大约10年前构建的。它只在IE中工作。我希望它也能在罗马工作。
我在下一个问题中遇到:我如何扩展IXMLDOMElement的"文本"属性以使用"文本"属性(当使用IE时)或"textContent"属性(当使用Crome时)。下面是一个代码示例。
Crome下一行有问题:
var resultContent = result_xml.selectSingleNode("WSResult/Result").text; (*)
用"textContent"属性代替"text"属性。我正在搜索如何扩展"文本"属性,它将在Crome工作也不改变(*)行。
我找到了下一个代码,但它不适合我
Element.prototype.text = function () {
return (this.textContent === undefined ? this.text : this.textContent);
}
代码示例:
function XMLDocWorkspace
{
this.LoadXML = function(xmlStr) {
if (xmlStr == null || $.trim(xmlStr) == "") return null;
if (window.DOMParser) {
parser = new DOMParser();
_xmlDoc = parser.parseFromString(xmlStr, "text/xml");
}
else // Internet Explorer
{
_xmlDoc = new ActiveXObject(Msxml2.DOMDocument.6.0);
_xmlDoc.async = false;
_xmlDoc.loadXML(xmlStr);
}
var errorMsg = null;
if (_xmlDoc.parseError && _xmlDoc.parseError.errorCode != 0) {
errorMsg = "XML Parsing Error: " + _xmlDoc.parseError.reason
+ " at line " + _xmlDoc.parseError.line
+ " at position " + _xmlDoc.parseError.linepos;
}
else {
if (_xmlDoc.documentElement) {
if (_xmlDoc.documentElement.nodeName == "parsererror") {
errorMsg = _xmlDoc.documentElement.childNodes[0].nodeValue;
}
}
else {
errorMsg = "XML Parsing Error!";
}
}
if (errorMsg) {
return false;
}
}
this.SelectSingleNode = function(xPath) {
if (_xmlDoc == null) return null;
var nodes = this.selectNodes(xPath);
if (nodes.length > 0) {
return nodes[0];
}
return null;
}
this.SelectNodes = function (xPath)
{
if (_xmlDoc == null) return null;
var condition = xPath;
condition = condition.substring(0, 1) == "/" ? condition.substring(1, condition.length) : condition;
condition = condition.replace(new RegExp("/", "g"), ">").replace(new RegExp("@", "g"), "");
return $(_xmlDoc).find(condition);
}
}
//*************************************************
var result_xml = new XMLDocWorkspace()
result_xml.loadXML(xmlString);
var resultContent = result_xml.selectSingleNode("WSResult/Result").text;
//*************
看这里
你必须定义getter:
Element.prototype。defineGetter('text', function(){返回this.textContent;});
。
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- javascript window.open将无法在Chrome控制台上工作
- 如何编写在Chrome和IE中正常工作的JavaScript
- 只有当Javascript控制台在chrome上打开时,Javascript才能工作
- NaN:Firefox和IE中的NaN,CHROME工作正常
- jquery日期转换chrome工作,但IE和firefox't
- Chrome工作区无法使用源地图和Javascript
- 数组比较在Chrome工作,但不与Chrome IPAD
- 如何获得一个值从选项时选择(此代码为chrome工作)
- HTML表单与javascript得到"在IE,但在Chrome工作
- 简单的脚本与onclick事件在Chrome工作良好,但在Firefox失败
- 在Firefox剑道按钮文本不改变,而在IE和Chrome工作
- Ajax GIF加载器不工作在IE和Firefox(最新),但在Chrome工作
- Firefox返回TypeError: document.getElementById(..)为空,但Chrome工作正
- 纯Javascript: onClick切换行/图像:Firefox/Chrome -工作:IE -不工作
- 为什么if (condition) {statements} else返回;"在Chrome工作
- 我怎么能得到jsFiddle在Chrome工作
- 模态对话框与Mozilla工作,但不与Chrome工作