【发布时间】:2016-03-17 19:45:51
【问题描述】:
我们的 Intranet 上有一堆为 IE9 编码的表单,其中包含与此类似的代码:
var dept = req.responseXML.selectNodes("//Dept")[0].text;
我们刚刚将我们所有的 PC 升级到 IE10,而 selectNodes 现在已经过时并已被 querySelectorAll 取代,因此更正的代码如下:
var dept = req.responseXML.querySelectorAll("Dept")[0].textContent;
所有这些表单都使用一个共享的 JS 文件来发送请求,所以我想如果我可以定义一些原型函数/属性,我可以在不触及每个表单的情况下解决这个不兼容问题。我取得了一些进展,并且能够使用以下方法将 selectNodes 映射到 querySelectorAll:
Document.prototype.selectNodes = function(param) {
return this.querySelectorAll(param.replace("//", ""));
}
但是,我现在遇到了将文本映射到 textContent 的问题。以下似乎不起作用:
Element.prototype.text = function() {
return this.textContent;
};
如果有人有任何建议,我将不胜感激,我真的不想追踪所有这些表格。谢谢!
【问题讨论】:
标签: javascript internet-explorer-9 prototype internet-explorer-10