• ベストアンサー

Javascriptを最後に実行する方法

サイト内に他のページ情報を表示するJavascriptを記述したところ、 他ページの情報を読み取るのに時間がかかり、結果としてJavascriptの記述部分以降の 表示が遅くなるようです。 いろいろ調べたところでは、Javascriptをページ最後で実行させればよいことは分かったのですが、 Javascriptの表示場所は変えずに、実行だけを最後に行うことはできるのでしょうか? 実行させたいJavascriptは以下の内容です。 <SCRIPT language="JavaScript" src="http://XXXX"></SCRIPT> ※RSSを表示する

  • mmei
  • お礼率74% (120/161)

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

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

#3です。 考えてみたらajaxとかではないので、直後に実行するだけでよいみたい。 (これならかなり簡単) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <div id="comment">ここに表示</div> <hr> ・・・・ その他の文章 ・・・・ <!-- ここから下をbody直前に書く --> <div id="temporary"> <!-- ↓普通に表示させたい時と同じ記述をする --> <script type="text/javascript" src="Http://www.daikoku-ya.org/perl/jsRSS/jsRSS.cgi?url=Http://twitter.com/statuses/user_timeline/3918621.rss::temp=twitter.tmp::line=10"></script> </div> <script type="text/javascript"> <!-- (function(){ var t = document.getElementById('temporary'); document.getElementById('comment').innerHTML = t.innerHTML; t.parentNode.removeChild(t); })(); //--> </script> </body> </html>

その他の回答 (3)

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

#2様がご提示の方法が大変スマートだと思いますが、少しだけ簡単な方法を… (同じことを泥臭くやっているようなものか…) 一旦(下の方に)表示させてから、内容を目的のところへ移動させています。(仮表示の部分は削除) (* アドレスのHttp部分はhttpに(2箇所)。直接呼出しは叱られるかも知れないけどサンプルなので。) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <div id="comment">ここに表示</div> <hr> ・・・・ その他の表示 ・・・・ <!-- ここから下をbody直前に書く --> <div id="temporary" style="visibility:hidden;"> <!-- ↓普通に表示させたい時と同じ記述をする --> <script type="text/javascript" src="Http://www.daikoku-ya.org/perl/jsRSS/jsRSS.cgi?url=Http://twitter.com/statuses/user_timeline/3918621.rss::temp=twitter.tmp::line=10"></script> </div> <script type="text/javascript"> <!-- /*@cc_on@*/ window./*@if(1)attachEvent('on' + @else@*/addEventListener(/*@end@*/'load', function(){ var t = document.getElementById('temporary'); document.getElementById('comment').innerHTML = t.innerHTML; t.parentNode.removeChild(t); }, false); //--> </script> </body> </html>

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

> 任意RSSを出力できるjsRSSと呼ばれるフリープログラムを利用しています。 最近、同じような質問に回答しました。 参考までに。 xhtmlでJavaScriptを使えますか? | OKWave http://okwave.jp/qa/q6432492.html

mmei
質問者

お礼

早々のご回答ありがとうございます。 ご紹介先に記載されているリンクページを拝見させて頂きました。 簡単にできるかと思いきや、少々勉強しないとついていけなさそうです。 リンクページで勉強させていただきます。

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

意味がよくわかりませんが、 「Javascriptの表示場所は変えずに、」 =>document.write 実行箇所の事でしょうかねえ? Javascriptをページ最後で実行させるなら単に</body>の直前に <script></script> を移動させるだけですけど、document.writeで途中に何か書き出してるなら、 位置を指定したDOM関数(例えばinnnerHTML)に書き換える必要があるかと。  スクリプトの内容しだいですね。

mmei
質問者

補足

早々のご回答ありがとうございます。 ご指摘の通り、実行させたいJavascriptは</body>直前に設置したいと考えています。 Javascript内では文字列の出力が行われるために、そのままでは、</body>直前への出力となりますので、 ページ中央の指定した場所で表示させたいと考えいます。 DOM関数というアドバイスを頂きまして、以下のように作成してみました。 しかし何も表示されません。。。 いろいろと試しているのですが、解決の目処が立たず申し訳ございませんが、 アドバイスを頂けると幸いです。 <div id="comment">ここに表示</div> ・・・ ・・・ <SCRIPT Language="JavaScript"><!-- document.getElementById('comment').src = "http://XXXX"; --></SCRIPT> </body> 上記の"http://XXXX"部分ですが、ここは任意RSSを出力できるjsRSSと呼ばれるフリープログラムを利用しています。 単純に、ホームページ内で以下のプログラムを実行した場合の出力をご紹介します。 <SCRIPT language="JavaScript" src="http://XXXX"></SCRIPT> 出力例は以下の通りです。 [2010/12/31 17:31:58] ウォークマン年末に首位奪還 [2010/12/28 12:56:26] Windows7について

関連するQ&A

  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type="text/javascript" src="main.js"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = '<script language="JavaScript">'; html += 'var url0101 = "url01.xxx.jp";'; html += 'var url02 = "url02.oooo.jp";'; html += '</script>'; html += '<script language="JavaScript" src="http://xxx.xxxx.xxx/test.js"></script>'); html += '<script language="JavaScript">'; html += 'Function01("check")'; html += '</script>'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type=\"text/javascript\" src=\"main.js\"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = \'<script language=\"JavaScript\">\'; html += \'var url0101 = \"url01.xxx.jp\";\'; html += \'var url02 = \"url02.oooo.jp\";\'; html += \'</script>\'; html += \'<script language=\"JavaScript\" src=\"http://xxx.xxxx.xxx/test.js\"></script>\'); html += \'<script language=\"JavaScript\">\'; html += \'Function01(\"check\")\'; html += \'</script>\'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • JavaScriptを最後に実行するには?

    JavaScriptでリンクをランダムに表示するようにしたところ、 少し表示が遅く感じるようになったため、 最後にJavaScriptを実行するようにonloadイベントを使って [外部(JavaScript)ファイル] <!-- window.onload = function onload(){ var random = Math.floor(Math.random() * 3); if(random == 0) document.write('<a href="URL1">サイト名1</a>'); else if(random == 1) document.write('<a href="URL2">サイト名2</a>'); else if(random == 2) document.write('<a href="URL3">サイト名3</a>'); }; //--> [HTMLファイル内] <script type="text/javascript" src="./フォルダ名/ファイル名.js"></script> のように書いて試しましたが、真っ白なページにこのスクリプトの内容だけが表示されてしまいます。 "window.onload = function onload{"と、最後の"};"の部分を追加するまでは普通に動いていました。 また、ページ内に、別の外部ファイルも含めて同じようなものを複数組み込みたいと思っています。 この方法でなんとか表示したいのですが、 別の方法も含め、情報をいただきたいです。 わかりにくいところがあれば補足します。 よろしくお願いします。

  • 結果のなかにさらにjavascript

    HTML部に <script type=\"text/javascript\" src=\"test.php\" ></script> を記述して 外部のphpスクリプトを実行した結果を表示させたり、 ることは出来るのですが、 結果のなかにさらにjavascriptを記述して実行しても作動しません。 <script type=\"text/javascript\" src=\"test.php\" ></script> で返ってきたデータにはJavascriptは記述できないのでしょうか? よろしくお願いします。

  • 複数のJavaScriptを順番に実行させるには

    1ページ内に複数のJsvaScriptを作成し順番に前のJavaScriptが終了したら次が実行を開始する方法を教えてください。お願いします。 例 <BODY> <DIV style="width : 212px;height : 12px;top : 16px;left : 8px; position : absolute; z-index : 1; " id="Layer1"> <SCRIPT language="JavaScript"> <!-- document.write('<EMBED src="st0.wma">最初に実行'); //--> </SCRIPT> <SCRIPT language="JavaScript"> <!-- document.write('<EMBED src="st1.wma">2番目に実行'); //--> </SCRIPT></DIV> </BODY>

  • 自動挿入されるjavascriptを実行させない

    よろしくお願いします。 サーバー側から勝手にアクセス解析のjavascript <script language="JavaScript" src="http://hogehoge.js"></script> が勝手に挿入されます。 これを無効・もしくは読み込ませてもいいから実行させないようにしたいのですがこれはどのようにすれば出来るでしょうか?

  • xhtmlでJavaScriptを使えますか?

    rssを大黒屋本舗さんのcgi(JavaScript?)で RSS を読み込み ホームページ(index.html)に表示しています。 http://www.daikoku-ya.org/perl/jsrss.php ↑ 大黒屋本舗さん 今回携帯用サイトをxhtmlで作成しましたが、 rss情報が表示されません。 表示させるページの任意の場所に、下記のように記載して呼び出しています。 <script language="JavaScript" src="./jsRSS.cgi?url=http://www.daikoku-ya.org/atom.xml::line=10::enc=sjis::temp=jsRSS.tmp"></script> htmlではOKなのですが、xhtmlサイトではNGなのです。 xhtmlではスクリプトを呼び出すことができないのでしょうか? JavaScriptとかcgiがよくわからないので、検討違いな質問でしたら申し訳ありませんがよろしくお願いいたします。

  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • 外部JavaScriptファイルから呼び出したい!

    ページを早く表示させるために、コピー&ペーストでスクリプトを外部ファイル化しました。 <script language="JavaScript" src="../js/menu.js"></script> ↑とコピペした外部ファイルへリンクさせ、その後、 <script language="JavaScript">mmLoadMenus();</script> と記述してある部分があるのですが、うまく呼びだせてないようでランタイムエラーがでます。 すべてのJavaScriptを1ファイル内に記述しているときはうまく動作しているのですが、外部ファイルに切り離すとエラーが出ます。 外部ファイル化したために、mmLoadMenus();が動作しないので、どなたか分かる方、アドバイスをお願いします!!

  • 外部ファイルを読み込ませるための記述方法を教えてください!

    (1)index.html (2)「index.html」以降のページのフォルダ(の中にhtml) (3)css.js (4)cssファイル を同じ階層に置いています。 htmlには<SCRIPT LANGUAGE="javascript"src="css.js"></SCRIPT> と書かれており、css.jsファイルからcssファイルを読み込み htmlにcssが適用されてるように設定されています。 この階層のhtmlにはcssが反映されるのですが (2)のフォルダの中のhtmlにとってはcss.jsの階層は一つ上になるのですが、 <SCRIPT LANGUAGE="javascript"src="css.js"></SCRIPT> と書いてもcssが反映されません。 srcの指定を正しくするにはどのように記述したらいいのでしょうか? <SCRIPT LANGUAGE="javascript"src="../css.js"></SCRIPT> と記述してもダメでした。 Javascriptの言語がほとんどわからず困ってしまっています。 大急ぎで知りたいのですが、わかる方いらっしゃいましたら 教えてくださると大変助かります。 どうかよろしくお願い致します。

専門家に質問してみよう