2

$.getScript()次のようなjQueryメソッドを使用して、スクリプトをドキュメントに動的にロードしています。$.getScript("excanvas.js", function(data){});

キャンバスの作成時に、キャンバスに次のステートメントを適用しました。

var canvasDiv = document.createElement('canvas');
canvasDiv.setAttribute("width", canvasBounds.width+"px");
canvasDiv.setAttribute("height", canvasBounds.height+"px");
if(window.G_vmlCanvasManager){
    canvasDiv = G_vmlCanvasManager.initElement(canvasDiv);
}

キャンバスに線を引こうとしましたが、うまくいきません。

スクリプトタグにexcanvas.jsをロードすると、正常に動作します。それはまるで

<head>
<script src="excanvas.js" type="text/javascript"></script>
</head>

理由がわかりません。誰でも解決策を提案できますか?

4

2 に答える 2

2

私はそれを使用しましたが、私にとってはうまくいきます:

if ($.browser.msie) {
      G_vmlCanvasManager.initElement(canvasDiv);
}

一番上のステップを実行した後、キャンバスのコンテキストを取得します。

context = canvasDiv.getContext('2d');

context変数を使用して線を描画します。

于 2013-07-10T13:06:15.163 に答える
0

エクスキャンバスを非同期/条件付きでロードする場合、可能です。

まず、手順の状態として、キャンバス要素は、 excanvasがロードおよび初期化されるまでページに存在できないため、後で生成するか非同期でロードすることを検討してください。

excanvas ライブラリがロードされたら (jQuery、requirejs などを介して)、これを呼び出します。

G_vmlCanvasManager.init_(document);

これにより、通常はドキュメントの準備ができている (通常は既に起動されている) ことをリッスンするマネージャーの内部 init 関数が呼び出されます。

于 2013-08-29T21:01:42.563 に答える