Javascript .replace在特定服务器上失败

时间:2014-08-27 09:53:26

标签: javascript

我遇到了一些Javascript的问题,当我连接到localhost时,我的笔记本电脑上的工作正常,但是当代码放在远程服务器上并且我从同一台笔记本电脑和浏览器(IE11)连接到它时。相关的代码段是:

      var wktxt = inputs[i].getAttribute( "ondblClick" );
      wktxt = wktxt.replace("(" + rowno,  "(" + rowcnt)
      inputs[i].setAttribute( "ondblClick", wktxt );
      inputs[i].style.backgroundImage = "url()";  

它在第二行失败了"对象不支持属性或方法'替换'""然而问题不是在本地命中并且行为与预期完全一致(这是在HTML表格中克隆一行的一些逻辑的一部分)。当我开始调试失败时,wktxt包含"函数ondblclick(){AddNotes2(1,0)}",rowno为1,rowcnt为7。

有什么想法吗?这段代码在一个循环中执行 - 是否与每次迭代时重新执行的var声明有关?

1 个答案:

答案 0 :(得分:0)

由于replace方法是字符串对象原型的一部分。看来var wktxt的结果可能并不总是等于字符串。要测试它,您可以使用typof语句。像

这样的东西
if (typeof wktxt === 'string') {
    wktxt = wktxt.replace("(" + rowno,  "(" + rowcnt)
    inputs[i].setAttribute( "ondblClick", wktxt );
    inputs[i].style.backgroundImage = "url()";
}
else {
    //write some code here to put whatever you want in wktxt should it fail to evaluate to
    // a string
}