我不是一个经验丰富的 javascript 程序员,所以提前为这可能是一个非常简单的问题道歉。在以下代码中,我调用 akpOpen 函数打开 2 个弹出窗口(IE10),比较表格单元格的内容并通过更改背景颜色突出显示差异。
<script language="javascript">
var nw;
var ow;
function genericOpen(k,n,w,h,t,l) {
var w = window.open(k, n,
'width=' + w + ',height=' + h + ',resizable=yes,menubar=0' +
',top=' + t + ',left=' + l + ',location=0,toolbar=0' +
',scrollbars=1');
return(w);
}
function checkValues() {
for (r = 0; r<999; r++) {
var id = 'r' + r + 'c1';
if (ow.document.getElementById(id).innerText !=
nw.document.getElementById(id).innerText) {
nw.document.getElementById(id).bgColor = 'red';
ow.document.getElementById(id).bgColor = 'red';
}
}
}
function akpOpen(nkey,okey) {
nw = genericOpen('CNCM0012?KEY=' + nkey, 'w1', 500, 150, 100,80);
ow = genericOpen('CNCM0012?KEY=' + okey, 'w2', 500, 150, 100,600);
checkValues();
}
</script>
如果我将页面作为硬盘驱动器中的静态内容加载,则代码可以正常工作。如果我从服务器加载涉及数据库查询和动态内容的页面,则会收到以下错误: SCRIPT5007:无法获取未定义或空引用的属性“innerText” 如果我使用 F12 调试动态页面,则代码运行良好。
如果我允许调试器拦截错误并查看局部变量,我可以看到“nw”和“ow”窗口句柄全局变量以及它们的关联元素,并且可以找到 getElementById 引用的元素。这似乎是一个时间问题,但我在这方面没有经验。任何帮助,将不胜感激。
谢谢