我在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上。
答案 0 :(得分:3)
你有两个问题:
external.GetNumber();
可能不会返回字符串类型你可以通过添加一个空字符串在js中解决这个问题,这会隐式地将nr转换为字符串类型:
var nr = ""+ external.GetNumber();
js parseInt函数使用基数参数Full explanation here:
nr = parseInt(nr, 10);
//正确使用
令我困惑的是你为什么不首先归还一个号码?我们只能猜测,因为你没有共享external.GetNumber();
背后的代码答案 1 :(得分:0)
我不认为你警告真正的错误。尝试:
var nr;
try{ nr = external.GetNumber(); } catch(e) { alert(nr); }