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クライアントでこれを行う方法を知っている人はいますか?

更新しました:

私はローカルホストでコードをテストしました。つまり、次のように.jsライブラリを参照します。

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

アラートメッセージが正しく表示されます。

しかし、サイトをライブサーバーにアップロードすると、次のようになります。

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

突然、特に2つのエラーが発生します。

  • 予期しない識別子bigdecimal.js行293
  • BigDecimalが定義されていません

ライブサイトではなくローカルホストで動作するのはなぜですか?

4

1 に答える 1

0

From: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 に答える