• ベストアンサー

javascript外部読み込みの際の引数

教えてください。 HTML内で以下のように ?ver=12 と引数付きでjavascriptを読み込みます。 <script type="text/javascript" src="hoge.js?ver=12"></script> このver=12をhoge.js内で利用するにはどうやって取得したらよいでしょうか? ※画像等のキャッシュの制御のためにバージョンナンバーをつけて管理します。

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

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

一例です。 (function(){ var sc = document.getElementsByTagName("script"); var ver = sc[sc.length-1].src.match(/\?ver=(\d+)$/); if(ver) ver = ver[1]; alert(ver); })();

muuming2001
質問者

お礼

なるほど、その手がありましたか!アイディアありがとう!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

引数を渡すくだりが何を参考にしたのかわかりませんが、 グローバル変数でよければ先に宣言しておけばいいのでは? <script type="text/javascript"> var ver=12; </script> <script type="text/javascript" src="hoge.js"></script>

muuming2001
質問者

補足

あー その手もありますね! 頭が硬くなってました。 >>引数を渡すくだりが何を参考にしたのかわかりませんが 参考には何もしていません。

関連するQ&A

  • Javascript外部ファイルの読み込みについて(ブラウザにキャッシュさせたい)

    現在、製作中のサイトにおいて、webページが表示されるまで、5秒~15秒程度かかる事態が発生しています。 該当サイトでは、prototype.js等のjavascriptのライブラリを使用しており、合計で5個のjsファイルを読み込んでいます。 jsファイルの読み込み箇所を削除するとサクサクと快適になるので、jsファイルの読み込みに問題があると考え、jsファイルを圧縮したり(http://dean.edwards.name/packer/等)、ブラウザにキャッシュさせるために<script src=""での読み込み時に引数「?version=1」を追加してみたりしていますが、あまり改善しません。 読み込みの数を減らすため、prototype.jsとjquery.jsを統合するなども試してみました。(統合後のサイズは116KB) 利用環境によってはそれほど気にならない速度なのですが、IE6の環境でかなり重い場合がありますので、改善方法を探しています。 一回目の表示はともかく、2回目以降も毎回トップページ表示に5秒以上かかるのは問題がありますので…。 現時点で原因は、外部jsファイルがキャッシュされず毎回サーバーに読みにいっているために遅くなっていると思うのですが…。 ブラウザに外部ファイルをキャッシュさせる方法は何かないのでしょうか? ちなみに、重くなる環境で、他のサイト(外部JSファイル読み込み多数)のサイトを表示しても、2回目以降は重くなりません。ブラウザのキャッシュの削除も一度試しています。 参考に、現在のスクリプト呼び出し部分を記述します。 ---------------------ソースここから--------------------------- <script type='text/javascript' src='js/prototype-1602-and_jquery.js?version=1'></script> <script type='text/javascript' src='js/js.js?version=1'></script> <script type="text/javascript" src="js/lib/jquery_auto_j.js?version=1"></script> <script type='text/javascript' src='js/scriptaculous-js-181/src/scriptaculous.js?load=effects'></script> <script type='text/javascript' src='js/lightview.js?version=1'></script> ---------------------ソースここまで--------------------------- また、スクリプトはPHPで作っていますので、キャッシュを許可する記述を以下のようにしています。 ---------------------ソースここから--------------------------- session_cache_limiter('private_no_expire'); session_start(); ---------------------ソースここまで--------------------------- また、現状ではjsファイルの読み込みが原因かと考えていますが、それ以外でも改善点などがあれば、それをご指摘頂ければありがたいです。 宜しくお願い致します。 確認環境:windows XP、 IE6 HP作成スクリプト:PHP

  • javascriptの外部ファイル読み込みの不具合

    質問させて頂きます。 javascript初心者です。 現在サイト作成にあたり、jsを組み込んでおります。 ajaxmailを設置しようと、参考サイトの手順通りに行ったのですが、 <script type="text/javascript" src="./js/protoculous-effects-packer.js"></script> の記述をすると、他のjsが動作しなくなってしまいます。 現在読み込んでいるものをコピペさせて頂きます。 <script src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script src="./js/mapstyle.js"></script> <script src="./js/modernizr.custom.min.js"></script> <script src="./js/jquery-1.10.2.js"></script> <script src="./js/hoge.js"></script> <script src="./js/jquery.smooth-scroll.min.js"></script> <script src="./js/jquery-ui-1.10.3.custom.min.js"></script> <script type="text/javascript" src="./js/protoculous-effects-packer.js"></script> <script type="text/javascript" src="./js/lightview.js"></script> 下2行がajax設置の際に読み込むものです。 lightview.jsだけの場合は機能しています。 どなたかご教示の程、よろしくお願い致します。

  • <head>外での、外部css、外部jsの読み込み

    基本的な質問で失礼します。 <head>内ではなく、たとえば<body>内に外部cssと外部jsを読み込む際、 今まで、以下のようにスクリプトを書いて読み込んでおり、うまくいっていました。 <script type="text/javascript"> document.write('<link rel="stylesheet" type="text/css" href="hoge.css" media="screen,print">'); document.write('<script src="hoge.js" type="text/javascript"></script>'); </script> ところが、あるサイト作成時、上記スクリプトでは効かなくなってしまいました。 (HTML 4.01 Transitional) そこで、<head>内で書くように、以下のように記述したら、うまく機能しました。 <link rel="stylesheet" type="text/css" href="hoge.css" media="screen,print"> <script type="text/javascript" src="hoge.js"></script> 自分の中では、この記述は<head>内で書くときであって、<head>外ではうまく読み込めないと思っていたのです。 そもそも、<head>外なのに、このような書き方をしてよいものでしょうか? まぁ、きちんと読み込めていて、動きも期待通りだから良いのでしょうが… 皆さん、どのように読み込んでいるのかなっと思い質問してみました。 どうぞ宜しくお願いいたします。

  • 外部JavaScriptの書き方

    外部JavaScriptの書き方 <script language="JavaScript" src="data.js"></script> 上記data.jsから、他サーバーの外部javascriptを読み出すには 以下のよな書き方で正しいでしょうか? document.open(); document.write('<script language="JavaScript" src="http://hoge.com/data.js"></script>'); document.close();

  • 外部JavaScriptの読み込み

    超初心者です。よろしくお願いします。 Macromedia Dream waverMX2004でホームページを作成しているのですが、見た目を良くしたくてスワップイメージやポップアップメニューなどを加えたところ、xxx.jsと自動的にファイルが作成され、 <script language="JavaScript" src="xxx.js"></script> と外部から読み込めるようになっていました。 しかし、<script language="JavaScript" type="text/JavaScript">○○○○○</script> という記述が残されているのですが、この○○○○○の部分を外部ファイルにすることは出来るのですか?(ソフトでの操作ではなく、Notepadなどで)

  • javascript引数

    文字列(a)を入れると、ある文字を返してくれるロジックを作成したのですが 1.jsの中身。 ************************************** function test(a){var i 省略 a.charAt(i);}return s;} ************************************** http <script type="text/javascript" src="1.js"></script> ~ ここで、引数のaに値を渡して、返してもらうのは、 この後、どのようにコーディングすれば宜しいですか。 すみませんが宜しくお願いします。

  • javascriptの外部呼び出し

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

  • 外部 js ファイルの動的読み込み

    通常、HTML で外部の Javascript ファイルを読み込む必要がある場合、 <script type="text/javascript" src="****.js"></script> としますが、これを Javascript のコード内で行いたい場合、何か方法はあるでしょうか? いわゆる、Perl での use や php での require のようなことを Javascript で実現したい - 動的に js ファイルを読み込みたいのです。 以上、お分かりになる方、よろしくお願いします。

  • javascriptのURL部分に引数を渡したい

    <script type="text/javascript" src="URL"></script> の URL部分に引数を渡したいのですが、どうしたらよいですか? イメージとしては、webページのどこかに <script type="text/javascript"> var keyword='キーワード'; </script> みたいにあって、次に <script type="text/javascript" src="URL&key=keyword"></script> とURLにパラメータを引数としてつけたいのです。 初心者で申し訳ありません。 どなたか教えてください。

  • javascriptのクラスの処理について

    javascriptのクラスを利用した処理で分からない所がありますので 教えて下さい。 最初に 下記の「1.の方法」でhtml側にjavascriptを呼び出す記述を して動かしていましたが、「2.の方法」に変更しなければならなく なりました。 ところが、「2.の方法」でやりますと、メインのhtml側がフリーズ してしまいます。 調べてみますと、メモリーを食いつぶしていますので、何か永久ループの ような状態に陥っているようです。 こような場合、何かやり方がおかしいのでしょうか? ご存知の方がいらっしゃいましたら、ご教授お願いいたします。 === 1.の方法 ===(問題なく動きます)================= ---ソース(index1.html) <script type="text/javascript" src="js1.js"></script> <script type="text/javascript"> hoge.create( abc, "def"); </script> ---ソース(js1.js) var hoge = {   xxx: ~~,   yyy: ~~   create: function(val1,val2) {     ~略~ }; === 2.の方法 ===(フリーズしてしまいます)=========== ---ソース(index2.html) <script type="text/javascript" src="js2.js"></script> <script type="text/javascript"> hoge_sub(); </script> ---ソース(js2.js) function hoge_sub(){   hoge.create( abc, "def"); } var hoge = {   xxx: ~~,   yyy: ~~   create: function(val1,val2) {     ~略~ };

専門家に質問してみよう