Javascript IE'的解决方案;s document.all.table.rows()';功能';
我在一个网站上有一个为IE编写的脚本。我无法编辑原始脚本,所以我尝试通过js和Jquery(使用Chrome插件)对其进行修改 脚本使用下一行将行添加到HTML表中,但在Chrome中出现错误:Javascript IE'的解决方案;s document.all.table.rows()';功能';,javascript,internet-explorer,google-chrome-extension,html-table,Javascript,Internet Explorer,Google Chrome Extension,Html Table,我在一个网站上有一个为IE编写的脚本。我无法编辑原始脚本,所以我尝试通过js和Jquery(使用Chrome插件)对其进行修改 脚本使用下一行将行添加到HTML表中,但在Chrome中出现错误: document.all.tbl.rows(i); 经过一些研究,我发现这是一个只在IE中使用的函数。在Chrome中使用了数组。 因此,所有这些行都应更改为以下内容: document.all.tbl.rows[i] 同样的问题也发生在行[i].cells()上 我已尝试将数组移动到rowsDat
document.all.tbl.rows(i);
经过一些研究,我发现这是一个只在IE中使用的函数。在Chrome中使用了数组。
因此,所有这些行都应更改为以下内容:
document.all.tbl.rows[i]
同样的问题也发生在行[i].cells()上
我已尝试将数组移动到rowsData
,并将行
覆盖到从rowsData
检索数据的函数
document.all.tbl.rowsData = document.all.tbl.rows; // This seems to work
document.all.tbl.rows = function(id) {
console.log('This function is used');
}
在使用Chrome的devtools进行检查后,我发现rowsData确实包含行的副本,但行仍然是一个数组。使用document.all.tbl.rows()
时,仍然会出现相同的错误:
未捕获类型错误:document.all.tbl.rows不是函数
唯一的另一种选择是替换整个函数(这是相当长的,并且不是首选的,因为它总是有可能改变)
我猜重写浏览器变量是不可能的。
有什么方法可以实现这一点吗?要覆盖类函数,需要在原型上执行:HTMLTableElement.prototype.rows
似乎仍然不起作用。我重新创建了我在JSFIDLE上所说的内容: