• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数を利用して読込先を動的に変えたい)

変数を利用して読込先を動的に変えたい

fujillinの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

質問の内容がよくわかってませんが・・・ ご提示の手順で読み込むことは可能ですが、通信環境(あるいはブラウザ)によって実行順が変わるようです。 例えば外部ファイルを <test.js>  alert("a"); として、 <script type="text/javascript"> document.write('<script type="text/javascript" src="test.js"><' + '/script>'); alert("b"); </script> で、読み込むと、  IE8・・・ b → a  FX31・・・a → b となります。 一旦ブラウザに制御を戻して、 <script type="text/javascript"> document.write('<script type="text/javascript" src="test.js"><', '/script>'); </script> <script type="text/javascript"> alert("b"); </script> とすれば、a → bとなるようです。 もっとも、ANo1様もおっしゃているようにdocument.writeを使用するのはあまり…という感じではありますが。 一方で、ご提示のようなことができたとしても、  20140623.html  20140624.html  ・・・・・・ のように、同じようなファイルが沢山できるのではないかと想像しますが、それって、わざわざ一般化して読み込むことにほとんど意味がないように感じます。(個別ファイルなのだから、個別で指定しても同じ) HTMLは一つだけで、データファイルだけ更新(追加)すれば表示できるほうがまだましで、例えば  hogehoge.html に一本化して、ファイル名に当たる部分はクエリ部を利用して渡すようなことにすれば、一般化することの意味があると思いますけど。 データをどのように作成しているのか不明ですが、jsファイルにしなくともデータのみのファイルの方がわかりやすいのではないかと思います。他からも利用しやすいでしょうし。(csvとかjasonなど) (読込がajax利用などになってしまいますが) どうせなら、サーバサイドで処理してしまうのが一番簡単でもっともらしい方法かも。

sulay
質問者

お礼

回答ありがとうございます。 一度、スクリプトを閉じることで実行順を固定できるわけですね! また、ご指摘その通りであります。ただ、サーバサイドはWEBサーバ環境が社内NASを利用した簡易な物 (最もコストが掛からない方法としてこうなりました)のため、プログラムを追加すれば可能ではあったはずですが、メインはNASとしてのファイルサーバなので負荷を上げるわけにもいかず、私のスキルも足りずで現段階では不可能な方法となります。 また、ご指摘通りhtmlファイルが複数出来ますが私のスキルの限界でhtmlのファイル名を決めるだけで中身に手を入れず、ファイル名と同じフォルダを用意し中に1~のpngファイルとdata.jsを放り込むだけでページ作成が可能になるように考えた結果であります(^-^; 理想は、data.jsに該当する物は一つで配列名を可変出来れば・・・もっとシンプルになるのですが(>_<) ちなみに、メニューのスクロール機能のためにajax?は利用していますが活用方法なども分からず、基本的なプログラムが書ける程度のスキルです(^-^;

関連するQ&A

  • ブログパーツのjquery利用について

    ブログパーツでjqueryを使用してhtmlなどを出力したいのですが、 思い通りの動作ができません。 jsファイルの中身 ------------------------------------------------------------ document.write("<script type='text/javascript' src='http://hoge.com/jquery.js'></script>"); document.write('<link rel="stylesheet" type="text/css" href="http://hoge.com/hoge.css">'); $(function() { $("div").html("<p>aaaaaaaaa</p>"); }); document.write('<div></div>'); ------------------------------------------------------------ これじゃあ、ほかのサイトからjsを読み込んでも 出力されないのでしょうか? (<script src="http://hoge.com/hoge.js"></script>) document.write("<div>aaa</div>");だけであれば、 ちゃんと出力されるのでjqueryの記述がおかしいのだと思います。 ご教授お願いいたします。

    • ベストアンサー
    • AJAX
  • FacebookのCommentsについて

    Facebookのapi(JavaScript)にてFacebookページのウォールを取得し、各投稿ごとに動的にIDを付加したCommentsプラグインを表示したいと思っています。 下記要領で実行すると、htmlは正しく挿入されている(Firebugにて確認)のですが、Commentsが読み込まれません。 同じファイル内でgetWall関数外に静的にHTMLを記述するとCommentsは表示されます。 どうすれば動的に識別子を付加したCommentsを表示させることができますでしょうか? <!-- SDK読み込み --> <div id="fb-root"></div> <script>(function(d, s, id) {  var js, fjs = d.getElementsByTagName(s)[0];  if (d.getElementById(id)) return;  js = d.createElement(s); js.id = id;  js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1";  fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <script>   function getWall() {     FB.api(       '/ -- ID -- /feed',       { access_token: ' -- 取得したアクセストークン -- ' },       function(response) {         // 取得後のコールバック         var contents = '';         for (var i = 0; i < response.data.length; i++) {           if(response.data[i]['message']){             contents += "<div class='topic_block' id='topic_" + response.data[i]['id'] + "'\>";             contents += response.data[i]['message'];             contents += "</div>";             contents += "<div class='fb-comments' data-href=' -- パーマリンク等、投稿毎の識別子 -- ' data-num-posts='10' data-width='470'></div>";             contents += "</div>";           */           }         }                     // ウォールの内容を表示させる         document.getElementById('topics').innerHTML = contents;       });   }      window.fbAsyncInit = function() {     getWall();   }; </script> <div id='topics'></div>

  • 外部ファイルを利用したい

    現在、Webの勉強を始めたのですが、自分でいろいろ作成していてうまくいかないので、教えて下さい。 htmlファイルが幾つかあるのですが、全てのページに同じテーブルタグを使用するので、JavaScriptの外部ファイルで書き出してそれぞれを各htmlファイルで呼び出そうと思っていますが、うまくいきません。 ★jsファイル/xx.js★ <SCRIPT language="JavaScript"><!-- document write("<table border='1'"); document write("<tr><td><img src='xx.gif'></td></tr>"); document write("</table>"); --> ★htmlファイルでの呼び出し★ <html> <head><title>外部ファイル呼び出し</title></head> <body><script language="JavaScript" src="xx.js"></script> </body></html> かなり素人なので変な書き方をしていると思いますが、ご指導お願いします。

  • JavaSciptを外部ファイルとして複数htmlファイルで利用したい

    JavaScriptでos、ブラウザ毎にフォントを一定化するスタイルシートをつくりました。このJavaSciptを外部ファイルにして複数のページから読み込ませるようにしたいのですが、XXX.jsファイルを読み込ませるための方法が分かりません。jsファイルの外部リンクの方法、またそれをhtmlページ内で適応させるためのタグも教えてください。 ちなみに今までは全ページに <script language="JavaScript"> <!-- mac=(navigator.appVersion.indexOf('Mac')!=-1)?true:false; ie=(navigator.appName.charAt(0)=="M")?true:false; document.write("<STYLE TYPE='text/css'><!--") if(mac){ //FOR MACINTOSH IE NS document.write(".e9{font-size:9px}") document.write(".e10{font-size:10px}") document.write(".e12{font-size:12px}") document.write(".j9{font-size:9px}") document.write(".j10{font-size:10px}") document.write(".j12{font-size:12px}") (中略) //--> </script> を記載し、それぞれ<div class="e12">~</div>で挟んでいました。

  • document.writeの書き方

    document.write("<div class='sponsors'><p><a href=\"" + banner[rndindex[i]].url + "\" target='_blank'><span class='guard'><script type='text/javascript' src='http://abc.com/js/abc.js'></script></span><img src=\"" + banner[rndindex[i]].src + "\"></a></p><p> " + banner[rndindex[i]].text + "</p></div>"); この中の <script type='text/javascript' src='http://abc.com/js/abc.js'></script> ですが、記述の仕方は合っていますでしょうか?FLASHを呼び出したいのですが、これを入れるとレイアウトが崩れてしまいます。 どうぞよろしくお願いいたします。

  • javascript 初心者です 変数について

    javascript 初心者です 変数について html内のbodyに次のように記述しています。 <script type="text/javascript"> <!-- var hensu1=7; var hensu2=2; var hensu3=5; var hensu4=4; for(i=1;i<=4;i++){ document.write("<div>"); for(j=1;j<="hensu"+i;j++){ document.write("<img src='sample.png'/>"); } document.write("</div>"); } --> </script> for(i=1;i<=4;i++)でdivを4つ並べ、 その中にそれぞれsample.pngをhensu分だけ並べ対のですが、 for(j=1;j<="hensu"+i;j++)の部分で "hensu"+i の記述の仕方が分からず、 上記の書き方だと表示されません。 正しい書き方を教えていただけないでしょうか?

  • 『外部JSファイル』を呼び出しても思った動作しない

    下記内容の『外部JSファイル』を呼び出しているのですが 広告が表示されません。 下記内容に不備ありましたら、ご指摘お願いいたします。 document.write("<div align='center'>") document.write("<p>") document.write("<script type='text/javascript'><!--") document.write("google_ad_client = 'hogehogeID';") document.write("/* 200*200 */") document.write("google_ad_slot = 'slotnumber';") document.write("google_ad_width = 200;") document.write("google_ad_height = 200;") document.write("//-->") document.write("</script>") document.write("<script type='text/javascript'") document.write("src='http://pagead2.googlesyndication.com/pagead/show …") document.write("</script>") document.write("</p>") document.write("</div>") 広告が出ないというか、google_ad_widthとgoogle_ad_heightの値が渡っていないようです。 よろしくお願いいたします。

  • 外部javascriptファイルの中にさらに外部javascriptファイルを入れたい

    javascript初心者です。 メニューの一部を外部ファイルによるツリーメニューにし、 さらにメニュー部分全体を外部ファイルにしようとしましたが、 メニュー部分全体を外部ファイルに移したら、 中のツリーメニューが機能しなくなってしまいました。 いろいろ試してみましたが、付け焼き刃の知識では皆目見当が付きません。 ご指摘いただけると嬉しいです。内容は下記の通りです。 メニュー全体の外部ファイル「menu.js」 document.write('<div id="menu">'); document.write('<h1>お役立ち情報<\/h1>'); document.write('<ul>'); document.write('<script src="javascript\/tree.js" type="text\/javascript"><\/script>'); document.write('<li><a href="javascript:tree("click1");" title="">HOME<\/a>'); document.write('<\/li>'); document.write('<div id="click1" style="display:none;">'); document.write(' <a href="未設定" title="作成中です" target="未定">第1ページ <\/a>'); document.write('<br>'); document.write(' <a href="未設定" title="教えられません" target="未定">第2ページ <\/a>'); document.write('<br>'); document.write('<\/div>'); document.write('<li><a href="javascript:tree("click2");" title="">お知らせ<\/a>'); document.write('<\/li>'); document.write('<div id="click2" style="display:none;">'); document.write(' <a href="未設定" title="作成中です" target="未定">第3ページ <\/a>'); document.write('<br>'); document.write(' <a href="未設定" title="教えられません" target="未定">第4ページ <\/a>'); document.write('<br>'); document.write('<\/div>'); document.write('<li><a href="#">DOWNLOAD<\/a>'); document.write('<\/li>'); document.write('<\/ul>'); document.write('<\/div>'); 中に入れてあるツリーメニューの外部ファイル「tree.js」 function tree(id) { if (document.getElementById(id).style.display == "block") document.getElementById(id).style.display="none"; else document.getElementById(id).style.display="block"; } .htmlの記述はこうなっています。 <script src="menu.js" type="text/javascript"></script>

  • Javascriptの変数の中に変数を代入するには

    Google chart というAPIがあります。これを利用して株価Chartを作ります。 https://google-developers.appspot.com/chart/interactive/docs/gallery/candlestickchart 末尾にGoogle Chartのソースを記載していますが このvar data内の ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] の部分を変更することによりローソクチャートが引けます。 一方、 <script type="text/javascript"> var chart; chart = "<div id='chart'></div>"; document.write("" + chart + ""); </script> と記載すると ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] のような株価変数が取得できるjavascriptを作成しました。 この2つを組み合わせると、株価チャートが引けることとなります。 ************************ 現在の苦境状況 ************************ Google chart APIに、下記のように「document.write("" + chart + ""); または "" + chart + "";または  + chart + ;」を代入してみたのですが、チャートは表示されません。 変数の中に変数を入れたことが原因と思いますが、どのようにすればいいかアドバイス願います。 <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> var chart; chart = "<div id='chart'></div>"; google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ document.write("" + chart + ""); ], true); var options = { legend:'none' }; var chart = new google.visualization.CandlestickChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div> ************************ GoogleChart ************************ <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] ], true); var options = { legend:'none' }; var chart = new google.visualization.CandlestickChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div>

  • htmlファイルのインクルード

    htmlファイルのインクルード あるページを複数の別のhtmlファイルを読み込んで構成しようと思っています。 以下がソースなのですがFirefoxでは samplesample テストテスト と表示されるのですが、Internet Explorerでは テストテスト のみが表示されsample.htmlが読み込まれません。 何がいけないのでしょうか。 よろしくお願いします。 [index.html] <html> <head> <title>テストページ</title> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> function my_include(id, file) { document.open(); document.write('<div id="' + id + '"></div>'); document.close(); var options = {}; options.method = "get"; options.asynchronous = true; new Ajax.Updater(id, file, options); } </script> </head> <body> <div id="headers"></div> <script type="text/javascript">my_include("headers","sample.html");</script> テストテスト </body> </html> [sample.html] <head> <title>sampleページ</title> </head> <body> samplesample </body> </html> [バージョン情報] Firefox 3.6.3 Internet Explorer 8 prototype.js 1.6.1

    • ベストアンサー
    • HTML