変数を利用して読込先を動的に変えたい
表示しているhtmlファイル名を取得して、動的に参照フォルダを変えるスクリプトを組んでいますが思うように動かず四苦八苦しております。
--------------------------------
/* --- URLからファイル名を取得しfileNameに格納、
見学報告データフォルダ名指定用として動的に変化させる --- */
var levelUrl = location.href.split("/");
var fileName = levelUrl[levelUrl.length-1].split(".");
// 表示用data.js読込
document.open();
document.write ('<script type="text/javascript" src="./topics/'+fileName[0]+'/data.js" charset="UTF-8"></script>');
// ページ生成シーケンス
document.write ('<h2>',commentList[0][0],'</h2>'); //アルバムタイトル生成
document.write ('<div>',commentList[0][1],'</div>'); //冒頭コメント生成
for (var i = 1 ; i <= commentList[1][0] ; i++){
document.write ('<p class="album"><img src="./topics/',fileName[0],'/',i,'.png" /></p><p class="comment">',commentList[1][i],'</p>');
}
document.write ('<div><p class="thanks">ご来訪のお礼</p>',commentList[0][2],'</div>'); //締めのコメント生成
document.close();
-----------------------
この内容を外部ファイル(album.js)として保存し[例]20140623_2htmlページ内で読み込みデバッグツールで確認するとalbum.jsを読み込んだ後に./topics/2014062_2/data.jsも読み込み、中身も正常に確認できましたが、album.jsの後に読み込まれているためか変数を利用できず?真っ白なページとなりました。
そこで、冒頭からコメントの「ページ生成シーケンス」前までを20140623.htmlのalbum.js読み込み直前に直接記載したところ、何故か
document.write ('<script type="text/javascript" src="./topics/'+fileName[0]+'/data.js" charset="UTF-8"></script>');
の行がhtmlタグの書き出しとして機能せず、最後のシングルクォーテーション以降がページ内にテキストとして表示されました。
具体的な表示としてはページ内に
'); document.close();
が表示され、一つのwrite文として機能していないためdata.jsファイルの読込も出来ない状態になりました。
外部ファイルにするか直書きにするかで動作が変わるため何が原因か分からず困っています。
なお、当方が目的としているのは見学報告のページに表示するコメントを収めた配列をhtmlファイルのファイル名に応じて動的に変化させたい事ですので、私が書いたフォルダ名を動的に変化させる方法のミス部分の指摘でも、変数名を動的に変化させる方法(元々これを実現しようと思っていましたが能力不足で出来ませんでしたorz)具体的には20140623.htmlのファイル内では配列data20140623の中身を参照するといった方法でも構いません。
よろしくお願い致します。
補足
substring()ですか。。。 この場合、document.writeが書かれているjsファイルでも読めるのでしょうか。