0

我在 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(); is not a string”。nr 的类型是 "undefined" 。

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

4

2 回答 2

3

你有2个问题:

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

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

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

令我困惑的是,你为什么不首先返回一个数字?我们只能猜测,因为您没有共享 external.GetNumber(); 背后的代码;

于 2013-01-16T17:35:49.523 回答
0

我不认为你在提醒真正的错误。尝试:

var nr;
try{ nr = external.GetNumber(); } catch(e) { alert(nr); }
于 2013-01-16T15:38:31.660 回答