- ベストアンサー
Javascriptを最後に実行する方法
サイト内に他のページ情報を表示するJavascriptを記述したところ、 他ページの情報を読み取るのに時間がかかり、結果としてJavascriptの記述部分以降の 表示が遅くなるようです。 いろいろ調べたところでは、Javascriptをページ最後で実行させればよいことは分かったのですが、 Javascriptの表示場所は変えずに、実行だけを最後に行うことはできるのでしょうか? 実行させたいJavascriptは以下の内容です。 <SCRIPT language="JavaScript" src="http://XXXX"></SCRIPT> ※RSSを表示する
- みんなの回答 (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)
#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)
> 任意RSSを出力できるjsRSSと呼ばれるフリープログラムを利用しています。 最近、同じような質問に回答しました。 参考までに。 xhtmlでJavaScriptを使えますか? | OKWave http://okwave.jp/qa/q6432492.html
- yyr446
- ベストアンサー率65% (870/1330)
意味がよくわかりませんが、 「Javascriptの表示場所は変えずに、」 =>document.write 実行箇所の事でしょうかねえ? Javascriptをページ最後で実行させるなら単に</body>の直前に <script></script> を移動させるだけですけど、document.writeで途中に何か書き出してるなら、 位置を指定したDOM関数(例えばinnnerHTML)に書き換える必要があるかと。 スクリプトの内容しだいですね。
補足
早々のご回答ありがとうございます。 ご指摘の通り、実行させたい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について
お礼
早々のご回答ありがとうございます。 ご紹介先に記載されているリンクページを拝見させて頂きました。 簡単にできるかと思いきや、少々勉強しないとついていけなさそうです。 リンクページで勉強させていただきます。