1

非同期 JavaScript のスニペットを次に示します。

var bsa = document.createElement('script');
bsa.type = 'text/javascript';
bsa.async = true;
bsa.src = 'myfile.js';
bsa.test_var = 'HI!';
(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa);

行を追加しましたbsa.test_var = 'HI!';- パラメータをに渡そうとしましたがmyfile.js、そこに「test_var」が出力されましたが、機能しません。

で、または だけmyfile.jsを呼び出そうとしましたが、どちらのバージョンも機能しませんでした。alert(bsa.test_var)alert(test_var)

パラメータを渡す方法はありますか? myfile.jsパラメータを に渡し、パラメータ ロード データに従ってデータベースから適切なデータを渡したいと思います。

ありがとうございました

4

2 に答える 2

2

パラメータをスクリプトに渡すのではなく、関数にパラメータを渡します。

スクリプト内の関数が呼び出されるまで実際には何もしないようにスクリプトを変更し、その時点でパラメーターを渡す必要があります。

問題は、スクリプトの読み込みがいつ完了したかを把握することの 1 つにすぎません。これは、要素オブジェクト.onloadにハンドラーを追加することで実行できます。<script>

于 2013-02-24T12:03:37.687 に答える
0

残念ながら、スクリプトにパラメーターを渡すことはできません。

RequireJSを使用してスクリプトをロードできます。スクリプトがロードされると通知されます。その時点で、必要なカスタム パラメータを使用して初期化を実行できます。AMD モジュールを使用する必要はありませんが、使用するとコードの構造が改善されます。

require('myfile.js', function (MyModule) {
    var myModule = new MyModule(customParameter);
});
于 2013-02-24T12:25:30.577 に答える