2011-08-09 16 views
0

実行中のJavaScriptコードを動的に変更する必要があるWebページを作成しています。多くの場合、動的コード内の関数の名前は同じですが、動作は異なります。したがって、document.getElementsByTagName('head')[0].appendChild(script);を使用することはオプションではありません。今のところ、文書の先頭に<script type="text/javascript" id="dynamicScript" src="about:blank"></script>があります。アクティブなスクリプトを変更する場合は、document.getElementById('dynamicScript').src="ajax.php?get=script&script=" + page;を呼び出して、PHPページが(タグなしで)correntスクリプトを吐き出します。しかし、それは動作しません。私は間違ったことをしていますか?そうでないと何かできますか?動的JavaScriptのインポート

+0

おそらくこれがあなたが試みていることでしょうか? http://api.jquery.com/jQuery.getScript/ –

答えて

0

新しい<script>要素を変更するだけでなく、DOMに追加する必要があります。また、ページをリロードせずに古いスクリプトをアンロードする方法はありません。以前のスクリプトで宣言した関数とデータを削除する必要がある場合は、プログラムでそれを実行する必要があります。関数の置換が機能します。

最後に、LABjs、RequireJS、ControlJS、またはSexyJSのようなスクリプトローダーを使用することをお勧めします。手動で行うのは余分な作業です。

編集:あなたはjQueryのを使用している場合も、ちょうどgetScript()を使用することができますし、あなたのスクリプトがにロードされている注文何を超える余分な制御を必要としません

0

正しいを吐き出しているからといってjavascriptは、実行されているわけではありません。 Stefanが指摘したように、1つの選択肢は、あなたの仕事を達成するためにjQuery用のgetScriptプラグインを使用することです。

関連する問題