我在 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 个问题:
external.GetNumber();
可能不会返回字符串类型
你可以在js中通过添加一个空字符串来解决这个问题,这会隐式地将nr转换为字符串类型:
var nr = ""+ external.GetNumber();
js parseInt 函数使用基数参数 Full explanation here :
nr = parseInt(nr, 10);
//正确用法
令我困惑的是你为什么不首先返回一个数字?我们只能猜测,因为您没有共享 external.GetNumber(); 背后的代码
关于javascript - IE6 变量仅在alert() 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362042/