.js
ファイルを同期的に呼び出して、すぐに使用することはできますか?
<script type="text/javascript">
var head = document.getElementsByTagName('head').item(0);
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://mysite/my.js');
head.appendChild(script);
myFunction(); // Fails because it hasn't loaded from my.js yet.
window.onload = function() {
// Works most of the time but not all of the time.
// Especially if my.js injects another script that contains myFunction().
myFunction();
};
</script>
これは単純化されています。私の実装では、createElementのものは関数内にあります。制御を返す前に、特定の変数がインスタンス化されているかどうかを確認できるものを関数に追加することを考えました。しかし、私が制御できない別のサイトからのjsを含める場合、どうすればよいかという問題がまだあります。
考え?
編集:
何が起こっているのかをよく説明しているので、今のところベストアンサーを受け入れました。しかし、誰かがこれを改善する方法について何か提案があれば、私は彼らにオープンです。これが私がやりたいことの例です。
// Include() is a custom function to import js.
Include('my1.js');
Include('my2.js');
myFunc1('blarg');
myFunc2('bleet');
内部を知りすぎないようにし、「このモジュールを使用したいので、ここからいくつかのコードを使用します」と言うことができるようにしたいだけです。
eval()
すべてのファイルが指定された順序で、それ以外の場合は応答を保存するだけです)。