• ベストアンサー

複数のJavascriptを1つのscriptタグで読み込む

複数のjsファイルをカンマ区切りで、 <script type="text/javascript" src="a.js,a.js,c.js"></script> と読み込みたいと思っております。 しかしサーバーの設定なのか一つも読み込まれずに行き詰っております。 原因はどこにあるのでしょうか?

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.5

> じつは > http://dogmap.jp/2008/01/16/supercharged-javascript/ > をしようとしているのですが、 こちらの方は、まったく別の構造でjsファイルを読み込んでますね。 > <script src = "scripts/yahoo.js, dom.js, event.js, dragdrop.js, slider.js"> といった記述では、 1. ブラウザはWWWサーバに「scripts/yahoo.js, dom.js, event.js, dragdrop.js, slider.js」という一つのファイルを要求する。 2. WWWサーバは、リクエストを「scripts.php?file=yahoo.js, dom.js, event.js, dragdrop.js, slider.js」に変換する(.htaccessの設定) 3. 「scripts.php」というPHPスクリプトに「file=yahoo.js, dom.js, event.js, dragdrop.js, slider.js」という引数を渡して起動する。 4.PHPスクリプトは、引数を「javascriptファイルがコンマ区切りで複数指定されている」と解釈して「連結したJavaScriptファイルを返す」 5.結果として、ブラウザは<script src="scripts/…">で指定した複数のjsファイルを連結したものを受け取る という流れになります。 ブラウザ側は1個のファイルをサーバに要求して、1個のファイルを受け取ってるだけです。 決して、HTMLの文法として、script src= で、コンマ区切りで複数のファイルが指定できるわけではありません。 この方法は、.htaccess で WWWサーバの動作を指定して、2のURL書き換えを行うのが最大のキモです。それが出来ないと、このPHPスクリプトはまったく動作しません。確認方法としては、 > <script src = "scripts.php?file=yahoo.js, dom.js, event.js, dragdrop.js, slider.js"> と指定してJSファイルの読み込みが出来るなら、「PHPスクリプトは動作しているが .htaccessの記述がうまくいっていない」という状況で、 動作しなければ、「PHPスクリプトが正しく動作していない」 ということになります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.4

a.js?b.js,c.js a.js の引数に b.js,c.js を設定することで、a.js を function と見立てて b.js , c.js がマージされるのですね。

全文を見る
すると、全ての回答が全文表示されます。
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 動作確認したわけでないのですが、 質問者様が開示したURLのやりかたですと <script type="text/javascript" src="a.js,a.js,c.js"></script> ではなくて <script type="text/javascript" src="a.js?b.js,c.js"></script> とかではないでしょうか。 一つ目の後を?でつないであとはカンマと書いてあります。

全文を見る
すると、全ての回答が全文表示されます。
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

なるほど、そんなやり方があったのですね。 参考サイトの例をよく見ると <script type="text/javascript" src="○○○.js?△△△.js,×××.js"> </script> 一つ目のJSの後ろに?がついてますね。これが肝ですよ。 私は、やった事ないし、やろうとも思わないし、やる必要性もかんじませんが...

hunter_999
質問者

補足

じつは http://dogmap.jp/2008/01/16/supercharged-javascript/ をしようとしているのですが、 カンマ区切りでテストしてもjsが読み込まれなかったもので、 説明不足で申し訳ございません。 ちなみに?に左右されないみたいです。

全文を見る
すると、全ての回答が全文表示されます。
  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

そのような使い方はできないからです。 <script type="text/javascript" src="a.js"></script> <script type="text/javascript" src="b.js"></script> <script type="text/javascript" src="c.js"></script> と記述するか、 a.js b.js c.js を一つのファイルにマージして <script type="text/javascript" src="a.js"></script> とするかです。

hunter_999
質問者

補足

http://digitrick.net/blog/item-582.html 上記のサイトなどで報告されているのですが…

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • javascriptファイルは1つに統合できますか

    javascript初心者のため、どなたかご教示いただけるとありがたいです。 html内に外部javascriptファイルを読み込むようにscript要素で記述しているのですが、複数の外部jsを読み込んでおり、可能であればhtml内の記述を簡略化したいと思っております。 <現状> <script type="text/javascript" src="・・・/js/jquery.js" charset="utf-8"></script> <script type="text/javascript" src="・・・/js/jquery.page-scroller.js" charset="utf-8"></script> <script type="text/javascript" src="・・/js/jquery.cookie.js"></script> <script type="text/javascript" src="・・・/js/ui.core.js"></script> <script type="text/javascript" src="・・・/js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="・・・/js/jquery.scrollfollow.js"></script> <script type="text/javascript" src="・・・/js/jquery.bxslider.js"></script> <script type="text/javascript" src="・・・/js/set_slider.js"></script> ・・・ jsに対する基礎的な質問ですが、上記のような複数の外部jsファイルを、1つの外部jsファイルにまとめることは可能なのでしょうか? (単純に1箇所にコピー&ペーストするようなイメージで) お手数ですが、ご教示のほど、宜しくお願い致します。

  • 複数のjavascriptが作動しない

    http://www.coolwebwindow.com/template/public.php 上記無料で配布されているホームページのテンプレートに 下記lightboxを設置しました。 http://lokeshdhakar.com/projects/lightbox2/ このテンプレートには、ページ内リンクへの移動がスムーズになる javascripが設置されているのですが、 このページにlightboxを追加すると スムーズに移動するjavascriptが無効になってしまいます。 <!--ページをスムーズに移動するjs--> <link rel="stylesheet" href="css/common.css" type="text/css" /> <script type="text/javascript" src="js/common.js"></script> <script type="text/javascript" src="js/jquery.js"></script> <!--lightboxのjs--> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /><script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> どのように対処すればいいのでしょうか? ご教授お願いいたします!

  • Javascriptの外部サーバーからの読み込み(greybox)

    いつも参考にさせていただいてます。 greyboxを使ってページを表示したいのですが、 使っているサーバーはjsファイルなどがアップロードできない、CMSサービスのサイトなので、 別のレンタルサーバーにアップロードしたjsファイルを読み込んで動かしたところうまくいきません。 模範例では、 ----------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Sample</title> <link rel="stylesheet" href="greybox/gb_styles.css" type="text/css" media="all"> <script type="text/javascript"><!-- var GB_ROOT_DIR = "./greybox/"; // --></script> <script type="text/javascript" src="greybox/AJS.js"></script> <script type="text/javascript" src="greybox/AJS_fx.js"></script> <script type="text/javascript" src="greybox/gb_scripts.js"></script> </head> <body> <h1>GreyBox サンプル</h1> <a href="http://job.mycom.co.jp/" title="job" rel="gb_page[480,360]"> 毎日就職ナビのページ表示 </a> </body> </html> ----------------------------------- なのですが、パスを絶対パスに変えて ----------------------------------- <link rel="stylesheet" href="http://mydomain/greybox/gb_styles.css" type="text/css" media="all"> <script type="text/javascript"><!-- var GB_ROOT_DIR = "http://mydomain/greybox/"; // --></script> <script type="text/javascript" src="http://mydomain/greybox/AJS.js"></script> <script type="text/javascript" src="http://mydomain/greybox/AJS_fx.js"></script> <script type="text/javascript" src="greybox/http://mydomain/gb_scripts.js"></script> ----------------------------------- と変更しました。 成功例(jsファイル同一サーバー上):http://greybox.main.jp/test_ng/index2.html 失敗例(jsファイル別サーバー上):http://greybox.main.jp/test_ok/index1.html 対応方法をお教え下さい。よろしくお願い致します。

  • <script>タグというのはどこからどこまで?

    drupalというcmsを使ってサイトを運営しております。 このCMSはJS injectorというモジュールを使ってJavaScriptのコードを挿入できるようになっています。 JavaScriptのコードの記入欄には下記のように書かれています。 「The actual JavaScript code goes in here. There is no need to insert the <script> tags.」 翻訳してみると下記のような意味です。 「実際のJavaScriptコードがここに入ります。 <script>タグを挿入する必要がない。」 planBCDというサイトのサービスを利用したいと思っていて 挿入したいコードは下記のコードです。 <script type="text/javascript" src="//dwkjexg5kaiww.cloudfront.net/planbcd/*****/**.js"></script> (****の部分には固有の番号が入ります。) 試しに 「src="//dwkjexg5kaiww.cloudfront.net/planbcd/*****/**.js"」 と入力してみて、表示されたページのhtmlを見てみると <script type="text/javascript"> <!--//--><![CDATA[//><!-- src="//dwkjexg5kaiww.cloudfront.net/planbcd/*****/**.js" //--><!]]> </script> となっていました。 1、 <script type="text/javascript" src="//dwkjexg5kaiww.cloudfront.net/planbcd/*****/**.js"></script> から<script>タグを外したら src="//dwkjexg5kaiww.cloudfront.net/planbcd/*****/**.js" でいいのでしょうか? 2、 htmlを見ると<!--//--><![CDATA[//><!--  //--><!]]>みたいな余分な部分が含まれているのですがこれでも正常に動作するのでしょうか? planBCDの管理画面を見ると「トラッキングコードの埋め込みが確認できません。」となっています。 (トラッキングコードの埋め込みを確認できるまでに若干、時間がかかるみたいなのでもう少しまてば確認できるのかもしれませんが・・・)

  • 【javascript】2つ同時に上手く動かない

    javascript初心者です。 現在作成している画面に2つのjavascriptを動かしたいと思っております。 しかしながら、一つずつでは動くのですが、同時に表示すると上手く動作しません。 いい方法などありましたらご教授お願い致します。 【htmlのヘッド】 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.coda-slider-2.0.js" charset="utf-8"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/sm_scroll.js"></script> <script type="text/javascript" src="js/jcaption.min.js"></script> <script type="text/javascript" charset="utf-8"> $(function(){ $('#coda-slider-1').codaSlider({ autoSlide:false, autoHeight:false, autoSlideStopWhenClicked:false, autoSlideInterval:10000, firstPanelToLoad:1, dynamicArrows: false, }); }); </script> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js/lightbox.js"></script> 【上部のjavascript】 Coda-Slider 参照URL:http://phpjavascriptroom.com/exp3.php?f=include/ajax/jquery_plugin_slider/coda_slider.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB 【下部のjavascript】 litebox 参照URL:http://lokeshdhakar.com/projects/lightbox2/ javascript内が初期化されているのが問題なのでしょうか? 解決の方法などありませんでしょうか? 以上、宜しくお願い致します。

  • scriptを2つ動かすために

    ライトボックスと、時間が経つとNEWマークが自動で消えるスクリプトを2ついれました。 すると、NEWマークの方だけが稼動して、ライトボックスが動きません。 自分で調べた結果、統合しないといけないというのはわかったのですが、やり方が…。。。 お力ください!(>_<) <!-- NEWマーク▼ --> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.newmark.js"></script> <script type="text/javascript"> /* <![CDATA[ */ $(document).ready(function(){ $(".newmark").newmark({ past: 240, icon: "<img src='images/new.gif' alt='new'>" }); }); $(document).ready(function(){ $(".newmark2").newmark({ past: 240, icon: "<img src='img/new2.gif' alt='new'>" }); }); /* ]]> */ </script> <!-- NEWマーク▲ --> <!-- #header ライトボックス --> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> <style type="text/css"><!-- #outerImageContainer { -moz-border-radius-topleft:10px; -moz-border-radius-topright:10px; } #imageDataContainer { -moz-border-radius-bottomleft:10px; -moz-border-radius-bottomright:10px; } --></style> <style type="text/css"> a:link {text-decoration:none;} a:visited {text-decoration:none;} a:active {text-decoration:none;} a:hover {text-decoration:none;} </style> <!-- #header ライトボックス -->

  • javascriptの中でjavascriptを呼びだしたいのです。

    javascriptで質問です。 javascriptの中でjavascriptを呼びだしたいのです。 実際にやるとエラーになりますが、方法はありますでしょうか。 xが1のとき、script1.js xが2のとき、script2.js のように実行を分けたいので、このような処理を したいのですが。 何卒よろしくお願いいたします。 <script type="text/javascript"> <script type='text/javascript' src='http://www.domain.com/script1.js'></script>"; </script>

  • 実行するスクリプトを時間で切替えたいが・・

    以下のようにHTML内に埋め込んで、時間で実行するスクリプトを切替えたいと思っていますが、何故か上手くいきません。 詳しい方がいましたら、ご教授下さいませ。 m(__)m <script language="JavaScript"> <!-- TimeH = (new Date()).getHours(); if (TimeH>=18) { <script language="Text/JavaScript" type="Text/JavaScript" src="./JS/xxx.js" charset="shift-jis"></script> } else if (TimeH<4) { <script language="Text/JavaScript" type="Text/JavaScript" src="./JS/yyy.js" charset="shift-jis"></script> } else { <script language="Text/JavaScript" type="Text/JavaScript" src="./JS/zzz.js" charset="shift-jis"></script> } // --> </script>

  • 複数スクリプトの読み込みでlightboxが動作しません

    MT4.1でサイトを構築し、カレンダー、サイト内検索、画像表示(lightbox)をprototype.jsを用いたスクリプトを読み込む形で動かそうとしているのですが、画像表示(lightbox(最新版))のみを読み込ませた場合は動作するのですが、三種類とも読み込ませた場合画像表示(lightbox)が正常に動作せず、拡大画像のページに移動してしまいます。 ヘッダ内に組み込んでいるソースは下記となります。 --------------------------------------------------------- <!-- カレンダー表示 --> <script type="text/javascript" src="<$MTBlogURL$>_ajax/calendar/prototype.js"></script> <script type="text/javascript" src="<$MTBlogURL$>_ajax/calendar/ajaxCalendar.js"></script> <script type="text/javascript" src="<$MTBlogURL$>_ajax/calendar/dayChecker.js"></script> <!-- カレンダー表示 --> <!-- lightbox --> <link rel="stylesheet" href="<$MTBlogURL$>_ajax/lightbox/css/lightbox.css" type="text/css" media="screen" /> <script src="<$MTBlogURL$>_ajax/lightbox/js/prototype.js" type="text/javascript"></script> <script src="<$MTBlogURL$>_ajax/lightbox/js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="<$MTBlogURL$>_ajax/lightbox/js/lightbox.js" type="text/javascript"></script> <!-- lightbox --> <!-- 検索窓処理 --> <script type="text/javascript" src="<$MTBlogURL$>_ajax/search/js/prototype.js"></script> <script type="text/javascript" src="<$MTBlogURL$>_ajax/search/js/blog_ajax_json_search.js"></script> <!-- 検索窓処理 --> --------------------------------------------------------- 画像表示(lightbox)のみにすると動作するので、他のスクリプトと衝突しているのだとは思いますが読み込みの順番などを変更しても効果がありませんでした。 解決策をご存知の方、ご教授をお願いいたします。

  • JAVASCRIPTで背景を切り替える方法

    以下の2つのjsファイルをボタンで切り替えれるようにするにはどういうソースで可能でしょうか? <SCRIPT type="text/javascript" src="http://www9.ocn.ne.jp/~aki2nd/dhtml/sample/heartdrop.js"></SCRIPT> <SCRIPT type="text/javascript" src="http://www9.ocn.ne.jp/~aki2nd/dhtml/sample/stardrop.js"></SCRIPT> 2つとも動く背景のjsファイルです。 bodyに置けば作動しますので、ボタンを押して2つを切り替えれるようにしたいのですがどうしても方法がわかりません。 どなたかご教授いただけないでしょうか? よろしくお願いします。