8

Dart を使用して動的に Dart スクリプトをロードしようとしています。私はこのようなものを使用しています:

test.html:

...
<script src="http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script>
<script type="application/dart" src="test.dart"></script>
...

test.dart:

#import('dart:html');
main() {
    var script = new ScriptElement();
    script.type = 'application/dart';
    script.src = 'helloworld.dart';
    document.body.elements.add(script);
}

うまくいきません。ただし、HTML ファイルで同じコードをインライン化すると、問題なく動作します。

test.html:

...
<script src="http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script>
<script type="application/dart">
#import('dart:html');
main() {
    var script = new ScriptElement();
    script.type = 'application/dart';
    script.src = 'helloworld.dart';
    document.body.elements.add(script);
}
</script>
...

なぜこうなった?

4

3 に答える 3

0

これを Dartium (Dart として) または別のブラウザー (JavaScript として) で実行していますか? 私は後者を想定しています。(http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js) を見ると、foo.dart などのスクリプト タグが検索され、foo.dart.js が自動的に読み込まれます。window.addEventListener("DOMContentLoaded", function (e) {...}) コールバックでこれを行います。このコールバックは、script タグを動的に追加するコードの前に発生します。

したがって、代わりにコードに helloworld.dart.js をロードすることができます。ただし、Dart は、理想的には、各スクリプト タグを個別の分離として処理しようとすることに注意してください。これは JavaScript とは異なります。

于 2012-08-21T15:32:46.410 に答える
0

これは Dart のバグでした。バグ レポートへのリンクは次のとおりです。

于 2012-11-01T04:13:49.373 に答える
0

Dart コードを動的にロードする別の方法: http://blog.sethladd.com/2013/04/dynamically-load-code-with-dart.html?m=1

DOM を操作せずに。dart:isolate の使用

于 2013-07-13T08:35:25.617 に答える