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

标签 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 个问题:

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

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

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

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

关于javascript - IE6 变量仅在alert() 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362042/

相关文章:

delphi - 如何将图像嵌入到 EXE 文件中并以幻灯片形式显示

html - IE6 布局问题 - 绝对定位

javascript - PNG修复(IE6)中出现错误“document.body.filters”

javascript - 为什么减少数组的长度会使最后一个元素未定义但长度不变?

javascript - Angular 获取表单元素

delphi - TWebBrowser 中的谷歌街景

css - 如何在 IE6 上将背景图像放置在较长的 <a> 链接上

javascript - 需要结合 jquery 函数的帮助

javascript - javascript中可能的网络协议(protocol)

delphi - D7 的 3 层应用程序架构