JavaScriptで外部ファイルをヒアドキュメントっぽくインクルードする方法

このQ&Aのポイント
  • JavaScriptで外部ファイルをヒアドキュメントっぽくインクルードしたいのですが、うまくいきません。どこがいけないのでしょうか?
  • JavaScriptでヒアドキュメントを使うライブラリを作った。詳細は[こちら](http://d.hatena.ne.jp/koseki2/20080112/jsheredoc)を参考にしていますが、理解できません。
  • 外部ファイルをインクルードするための記述をしていますが、Firefoxで読み込みが完了しない問題が発生しています。どのように修正すればよいでしょうか?
回答を見る
  • ベストアンサー

javascriptで外部ファイルをヒアドキュメントっぽくインクルード

javascriptで外部ファイルをヒアドキュメントっぽくインクルードしたいのですが、うまくいきません。どこがいけないのでしょうか? ■JavaScriptでヒアドキュメントを使うライブラリを作った。 - こせきの技術日記 http://d.hatena.ne.jp/koseki2/20080112/jsheredoc を参考にしているのですが、掲載内容が理解できません。 とりあえず、下記記述としたところ、 外部ファイルをインクルードでき、表示もされるようにはなったのですが、 Firefoxで読み込み完了とならず、いつまで経っても読み込み中のままとなってしまいます。(恐らく完全に正常に処理されているのではなく、どこかの処理で引っかかったままなのだと思います) どう直せばよいのでしょうか? ■index.html <script type="text/javascript" src="heredoc.js"></script> </head> <body> <script type="text/javascript"> var callback = function(values) { document.write(values.str); } Heredoc.load("./templates_02.txt", callback); </script> </body> ■templates_02.txt var str=<<EOT sssssss ddddddd2 <a href="http://www.yahoo.co.jp/">YAHOO</a> EOT

  • re999
  • お礼率61% (476/777)

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

単にcloseしてないから、終わらないだけじゃないですか?

re999
質問者

お礼

ありがとうございます。無事、動作しました!

関連するQ&A

  • 外部javascriptファイルをjavascriptから動的に呼び出したい

    呼び出し元のURLによって動作を変えたいJAVASCRIPTがあります。 普段外部のJAVASCRIPTを呼び出すときはよくこうするのですが <script type="text/javascript" src="js.php?key=url"></script> これでは「key=url」が固定になってしまいます。そこで下記のように <script> var commentname=document.URL; var str=encodeURIComponent(commentname); document.write('<script type="text/javascript" src="read.php?key=',str,'"><\/script>'); </script> document.writeを使って無理やり外部Javascriptファイルの呼び出しスクリプトを書いているのですが、この書き方はどうもエレガントさにかけるというか、いまいち気に入りません。 もっとほかに良い方法がある気がするのですが、調べてもわかりませんでした。おわかりになる方がいらっしゃったらご教示頂けないでしょうか。

  • JavaScriptで外部htmlをインクルード

    至らないところがありますが、どうぞよろしくお願い致します。 目的はhtmlとJavascriptだけで、html内に他のhtmlの内容を表示することです。 Makeshop.jpを使用しているのでPHP、CGI、SSI等は使用できません。   下記リンクを参考にローカル上で外部htmlファイルの読み込みは出来ましたが、   includeの関数を呼び出す所でhttpから始まるパスを指定すると   外部htmlファイルの読み込みは出来ませんでした。   ”静的HTMLで、インクルードを実現するためのJavaScript”   http://d.hatena.ne.jp/kenpoco/20080501/1209636103   現状のパスの指定はこんな感じです。 <div> <script type="text/javascript" > include("http://www.XXX/hoge.htm"); </script> </div>   エラーが発生する部分は、関数の下記の一文です。   insertBeforeHTML(s.split("&gt;").join(">").split("&lt;").join("<"), span);   原因は分かっていません。 上記の原因解決や、また他の方法があれば教えていただきたいです。 読んで頂きありがとうございます。

  • このJavaScriptを外部ファイルにしたいのですが

    下記のjavascript部分を外部ファイルにしてすっきり させたいのですが方法がわかりません。 どなたかよろしくお願いします。 <head> <script type="text/javascript"> <!-- var txt = new Array(4); txt[0] = "ホームページへようこそ!!"; txt[1] = "4月になりました"; txt[2] = ""; txt[3] = "お車は駐車場へ入れましょう。"; var speed1 = 50; var speed2 = 300; var i = 1; var k = 0; var j = 0; var tID1,tID2; var nai; function txtScr(){ if(k >= txt.length){k = 0;} nai = txt[k].substring(0,i); document.formd.denkou.value = nai; i++; if(i > txt[k].length){ i = 0; k++; } if(i == 0){ clearTimeout(tID1); Scr(); }else{ tID1 = setTimeout("txtScr()",speed1); } } function Scr(){ document.formd.denkou.value = nai.substring(j,nai.length); j = j + 1; tID2 = setTimeout("Scr()",speed2); if(j > nai.length){ j = 0; clearTimeout(tID2); txtScr(); } } //--> </script> </head> <body onLoad="txtScr();"> <form name="formd" action="index.html" STYLE="margin: 4px;"> <noscript class="red"> JavaScriptの表示を有効にするか<br> JavaScript対応ブラウザで見てください。<br> </noscript> <input type="text" name="denkou" value="お知らせ" size="60%" tabindex="6" accesskey="f" style="background-color:#ccffcc;color:#333333;border:0px none #ffffff;font-size:22px;font-weight:bold;"> </form>

  • JavaScriptに、Perlのヒアドキュメントみたいな方法は?

    JavaScriptに、Perlのヒアドキュメントみたいな方法はないのでしょうか? JavaScriptの外部ファイルを使って、SSIの[include]みたいなことをやりたいのですが、 外部ファイル内で、何回も[document.write]と書かなくてもいいような方法はないでしょうか。

  • ヒアドキュメントの中で別ファイルをインクルード

    PHPでヒアドキュメントの中で別ファイルをインクルードする方法はどのように処理するのでしょうか? sample.txt <p>サンプルテキストからの文字</p> ------------------------------------ sample.php $sample = <<<_EOM_ <html> <head> </head> <body> サンプルサンプル<br> *ここにsample.txt内のhtmlソースをインクルードしたい。 </body> </html> _EOM_; 以下省略(echoとかで出力)

    • 締切済み
    • PHP
  • 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
  • javascriptで困っています。教えてください

    以下のようにjavascriptの内容を書いた外部のテキストファイルを読み込んで、実行しようとしているのですが、うまくいきません。普通にjavascriptを読み込むのは分かっているのですが、このような方法ができないのでしょうか?よろしくお願いします。 <!doctype html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>無題ドキュメント</title> </head> <body> <div id="jsbox"></div> <script type="text/javascript"> var jsbox = document.getElementById("jsbox"); //非同期通信///////////////////////////////////////////// var xmlHttp; loadText(); function loadText(){ if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); }else{ if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xmlHttp = null; } } xmlHttp.onreadystatechange = checkStatus; xmlHttp.open("GET", "http://xxxxxxxxxxxx/js_test.txt", true); xmlHttp.send(null); } function checkStatus(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ var str = xmlHttp.responseText;alert(str); jsbox.innerHTML = str; test_js(); } } ///////////////////////////////////////////////////////////////// </script> </body> </html> テキストファイルをhttp://xxxxxxxxxxxx/js_test.txtに置き、テキストファイルの内容が <script type="text/javascript"> function test_js(){ alert("test"); } </script>

  • javascriptを外部ファイルに置く方法

    スタイルシートを外部ファイルにおいてlinkで読み込んでいます。 ふとjavascriptもテキストタイプを変えてやればいくのではないかと 名案が閃きました。そこで下のようにしてみました。 <link rel="script" href="java.txt" type="text/javascript"> しかしダメでした。我ながらいいアイディアだと思ったのですが・・・ どうも調べてみたらlinkではいかないようでした。 外部にあるjavascriptを読み込む場合はどうすればいいのでしょうか。

    • ベストアンサー
    • HTML
  • javascriptの外部呼び出し

    ttp://cache-cache.tea-nifty.com/kids/2005/04/ec10_38ba.html このサイトのjavascriptを外部呼び出ししたいのですが、 どこからどこまでを記述して●●●.jsで保存して、 <script type="text/javascript" src="●●●.js"></script> と、呼び出せばいいのでしょうか? また、表示させたい場所(<body>~</body>の間)には どのように記述すればいいでしょうか?

  • JavaScriptの外部ファイル化とSSIについて

    いつもお世話になっております。 親切で丁寧なご回答に心から感謝いたします。 今回、JavaScriptを外部ファイルにし、 更新等の時間を大幅に削減しようと思っておりますが、 上手くいかないためこちらに質問させていただきました。 当方のホームページではメニュー部とタイトル部をSSIを利用し、 インクルードさせ、表示しておりますが、JavaScriptを外部ファイルにすると、 SSIでインクールドさせている部分だけ表示されなくなってしまいます。 Firefoxのソース表示でソースをみると、インクルードさせている部分は、 ソースにはありましたが、その部分だけHTML文書ではなく ただの文書(黒字)になってしまっております。 ただ、indexページだけはなぜか正常に表示され、 メニューから移動した際に、インクルードしたものが表示されない状態です。 メニュー部は外部ファイル化したJavaScriptでツリーメニューになっています。 何卒、宜しくお願いいたします。 ソースは下記のとおりです。 <HEAD> <META> <LINK href="detarame2006.css" type="text/css" rel="stylesheet"> <script type="text/javascript" src="script.js"> </HEAD> 省略 <TR> <!--#include file="top/top.html" --> </TR> <TR> 省略 </TR> <!--#include file="menu/menu.html" -->

専門家に質問してみよう