1

我正在使用 bigDecimal.js:

https://github.com/iriscouch/bigdecimal.js

在我的 node.js 项目服务器端没有问题但是当我在客户端上尝试相同时,我似乎无法正确引用 bigDecimal 对象。在 github 页面上有一个链接:

http://jhs.iriscouch.com/demo/_design/bigdecimal/_show/ui?e=321.4567890*123456789.123456789987654321

我的 html 中有一个指向 bigdecimal.js 的链接:

<script src="/javascripts/bigdecimal.js" type="text/javascript"></script>

并且脚本肯定在那里,因为我可以在 chrome 中导航到它。

我的代码如下所示:

var bd = {"BigDecimal":BigDecimal, "BigInteger":BigInteger, "RoundingMode":RoundingMode};
var bigDeletedVideoID = bd.BigInteger('9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999');
var bigLowNum = bd.BigInteger('1');
alert(bigDeletedVideoID.subtract(bigLowNum));

但我在第一行的 chrome 中收到错误消息:

BigDecimal is not defined.

有没有人有使用 BigDecimal 的经验以及如何在 javascript Web 客户端上执行此操作?

更新:

我在 localhost 上测试了代码,即像这样引用 .js 库:

http://localhost:11709/javascripts/bigdecimal.js

我得到正确显示的警报消息。

但是当我将网站上传到实时服务器时,现在它变成了:

    http://pazooza.azurewebsites.net/javascripts/bigdecimal.js

突然之间,我特别收到了 2 个错误:

  • 意外标识符 bigdecimal.js 第 293 行
  • BigDecimal 未定义

为什么它可以在本地主机上运行而不是在实时站点上???

4

1 回答 1

0

来自:通过 Firebug 控制台加载 javascript

var script = document.createElement("script");
script.src = "http://pazooza.azurewebsites.net/javascripts/bigdecimal.js";
document.body.appendChild(script);

在重写这个答案之前,我怀疑似乎没有任何命名空间冲突:相反,在加载 js 页面之前,必须非常精确地不使用符号“BigDecimal”......

这通常由 onload 事件处理。

最初的建议是使用 node.js 框架或按照https://github.com/iriscouch/bigdecimal.js 的建议假设命名空间BD

 var foo=require("bigdecimal.js"); var i = foo.BigDecimal("1235");
于 2012-10-06T08:12:07.203 回答