IE6变量仅在alert()中起作用

时间:2013-01-16 15:35:16

标签: javascript delphi internet-explorer-6

我在delphi应用程序中使用TWebBrowser组件并使用JavaScript进行通信。

在JavaScript中,我有以下代码:

function test() {
  var nr = external.GetNumber();
  alert(nr);
  nr = parseInt(nr); // this is where the javascript fails
  doSomethingWith(nr);
}

alert(nr)函数显示我期望的数字(例如:1517376)但是当我调用parseInt(或任何其他函数)时,它失败并且“external.GetNumber();不是字符串”。 nr的类型是“未定义的”。

有没有办法将其转换为字符串或数字?我尝试了nr.toString(),String(nr),nr = nr +''它们都失败了,因为“字符串是预期的”。这只发生在IE6上。

2 个答案:

答案 0 :(得分:3)

你有两个问题:

  • external.GetNumber();可能不会返回字符串类型

你可以通过添加一个空字符串在js中解决这个问题,这会隐式地将nr转换为字符串类型:

var nr = ""+ external.GetNumber();

令我困惑的是你为什么不首先归还一个号码?我们只能猜测,因为你没有共享external.GetNumber();

背后的代码

答案 1 :(得分:0)

我不认为你警告真正的错误。尝试:

var nr;
try{ nr = external.GetNumber(); } catch(e) { alert(nr); }