• ベストアンサー

ツリー式 メニューを外部ファイルとして読み込みたい

ツリー式 メニューを見つけて参考にさせていただいておりますがメニュー項目を外部ファイルにしたく試行錯誤いたしましたがうまく配列に入れることができません。 どなたか詳しい方、ご教授願えないでしょうか? よろしくお願いいたします。 下記のscriptの menu[0] = "メニュー,0,0"; のmenu配列を外部ファイルにしたい。 <html> <head> <title>menu</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> content="text/javascript"> <script type="text/javascript" src="crossbrow_lib.js"></script> <script type="text/javascript" src="dhtml_lib.js"></script> <script type="text/javascript"> <!-- BrowserCheck(); menu = new Array; *****ここから↓ menu[0] = "メニュー,0,0"; menu[1] = "<a href=test1.html target=_blank>test11</a>,1,1"; menu[2] = "<a href=test2.html target=_blank>test2</a>,1,1"; menu[3] = "TEST3,1,0"; menu[4] = "TEST3-1,2,0"; menu[5] = "<iframe src=test3-1.html width=600 height=480></iframe>,3,2"; menu[6] = "TEST4,1,0"; menu[7] = "TEST4-1,2,0"; menu[8] = "<iframe src=test4-1.html width=600 ***** ここまで height=480></iframe>,3,2"; ExpposinitX =10; ExpposinitY =10; ExpWidth = 600; function init(){ ExplorerTree(); } //--> </script> <script type="text/javascript"> <!-- //--> </script> <style type="text/css"> <!-- --> </style> <link rel="stylesheet" href="style.css" type="text/css"> </head>

質問者が選んだベストアンサー

  • ベストアンサー
noname#199778
noname#199778
回答No.2

とりあえず、配列に値を定義する部分を外部化したいということでよろしいですか? 質問文では、配列に対して値を代入する部分だけを外部化しようとしているようですが、外部ファイルにはそれが配列であることを定義する部分もまとめて入れておくのが良いかと思います。 JavaScriptでは、変数は事前に変数として定義させなくても値を代入させることができますが、配列はまずそれが配列であることを定義しないと利用できません。 この配列を配列として定義する部分が「menu=new Array();」と言う部分です。 こちらは外部ファイルに一緒に入れてありますか? もしこれを記述しないでいきなり配列の要素に値を代入しようとしても、うまくいかないのではないかと思います。 もし上記の一行が外部ファイルに入っていない場合は、外部ファイルの各配列要素に値を入れる部分よりも前に、この配列を定義する記述を追加しておくことをお勧めします。 それと、ここまでと区切ってある部分は配列に値を代入する行の途中に入ってしまっていますね。 これについては単なるタイプミスかとは思いますが、タイプミスでないとしたらこれは修正したほうが良いでしょう。 まずはそこを訂正してみるのがよいと思います。 見当違いでしたらごめんなさい。

riu-riu
質問者

お礼

おはようございます。 適切なアドバイス、ありがとうございました。 「menu=new Array();」を外部ファイルに一緒に入れた所うまくいきました! ずっと悩んでいたところなので助かりました。 また解らないことがありましたらご教授していただけると有り難いです。 今度はもっとわかりやすく説明できるよう頑張りますね!

その他の回答 (1)

  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

はっきり言って何の為に必要な配列か見えません。 該当個所以降で呼び出してる気配がないんですけど? あと外部ファイルとして成功しないのは、 「ここまで」の位置がおかしいからではないですか。

riu-riu
質問者

お礼

おはようございます。 >はっきり言って何の為に必要な配列か見えません。 配列にする理由は。。。 ツリーの項目がメンテナンスの度に増えたり減ったりするのと項目2~3千行とあるので外部ファイルを別プログラムで生成しよと思ったからです。 >該当個所以降で呼び出してる気配がないんですけど? すみません。 ソースで自分で記述するのは <SCRIPT LANGUAGE="JavaScript" SRC="data.js"></SCRIPT>の一行だけだったので 自分で書いたコードは載せませんでした。。。 これからは気をつけます。 配列の定義を外部ファイルへ記述することによって 解決いたしました。 アドバイス、ありがとうございました。 今度からはもっとわかりやすく説明できるよう 努力させていただきますので 今後も宜しくご指導をお願いいたします。