プロが教えるわが家の防犯対策術!

JavaScriptで参照する外部ファイルを、ヘッダー部で以下のように記述しています。

<script language="JavaScript" src="Data.js"></script>

このsrc=で、指定するファイルを、変数で指定することは可能でしょうか?
試しに

<script language="JavaScript">
<!--
var Src_File = "Data.js";
 src=Src_File;
//-->
</script>

と記述しても、エラーとなってしまいました。

変数を使いたい理由は、ラジオボタン等を使って、参照する外部ファイルを動的に切り替えたいのです。
よろしくお願いします。

A 回答 (3件)

IE9でモードをIE8モードにして試して見ましたが、


特に問題なく動きました。
(呼び出した記述はalertの実行や関数定義。)

document.writeとか使ってないですよね?
    • good
    • 0

ANo.1のコードは検証してはいませんが、


evalは文字列の内容をJavaScriptとして評価する物なので
(JavaScriptコードではない)HTMLの断片を渡してもエラーになると思います。


appendChildでscript要素を追加すると読み込んでくれるようですね。


var src = 'Data.js'; //ファイルのパスを入れる

//script要素を追加
var scriptElement = document.createElement('script');
scriptElement.src = src ;
document.getElementsByTagName('head')[0].appendChild(scriptElement);
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

<script language="JavaScript">
<!--
var Src_File = 'Photo.js';
var scriptElement = document.createElement('script');
scriptElement.src = Src_File ;
document.getElementsByTagName('head')[0].appendChild(scriptElement);
//-->
</script>

としてみましたが、思うようにいきません。
何が悪いのでしょうか?
因みに、IE8です。

お礼日時:2012/01/17 23:33

検証してないのでなんとも言えませんが・・・



var a = "aaa.js";
var b = "bbb.js";
var srcFile = "";

if ( 条件 ) {
srcFile = "<script type=\"text/javascript\" src="+ a +"></script>";
}
else {
srcFile = "<script type=\"text/javascript\" src="+ b +"></script>";
}

eval( srcFile );

こんなんじゃだめですかね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!