• ベストアンサー

スクリプト内から他の外部スクリプトを読み込みたい

arenani_sorenaniの回答

回答No.5

以下サンプルソースです。外部スクリプトはひつようありません。 すべてhead内に記述しました。 私がテストした限りでは、ボタンを押したときに 外部スクリプトの読み出しに成功しています。 <html> <head> <script> function dynamicLoad(jsFileName){ var now =new Date(); var getData =jsFileName+'?nc='+now.getTime(); if(document.all){ if(navigator.userAgent.indexOf("Win")!=-1){ eval(document.all('dynld')).src = getData; }else if(navigator.userAgent.indexOf("Mac")!=-1){ document.body.insertAdjacentHTML('BeforeEnd','<scr'+'ipt src="'+getData+'"><scr'+'ipt/>'); } }else if(document.getElementById){ var cnode=document.getElementById('dynld'); var nnode=document.createElement('script'); nnode.src=getData; nnode.id ='dynld'; cnode.parentNode.replaceChild(nnode,cnode); }else{ if(document.images){ var datasrc=new Image(); datasrc.src=getData; location.href=datasrc.src; } } } function check() { var google_conversion_id=1071970427; var google_conversion_language="ja"; var google_conversion_format="1"; var google_conversion_color="FFFFFF"; if(1){ var google_conversion_value=1; } var google_conversion_label="Purchase"; if(document.forms[0].size.selectedIndex){ dynamicLoad('http://www.googleadservices.com/pagead/conversion.js'); }else{ alert("サイズを選択してください!"); return false; } } document.write('<scr'+'ipt id="dynld"></scr'+'ipt>'); </script> <head> <boy> <form onsubmit="return check();" action="#" method="POST"> <select name="size"> <option>▼選択</option> <option>10cm</option> <option>20cm</option> </select> <input type="submit" value="買い物かごに入れる"> </form> </body> </html>

toutetsu
質問者

補足

arenani_sorenaniさん、お忙しいところサンプルソースを作っていただき大変感謝しております。 早速試してみたのですが、よくわからない点が3点あります。 お時間のあるときにアドバイスいただければ幸いです。 お手数かけて申し訳ありませんがよろしくお願いいたします。 ※補足が長すぎるため分割しました。 ●1● 外部スクリプトの読み出しのテスト方法について 外部スクリプトを実際に読み出しているかテストするのに何か良い方法はありますでしょうか。 ▼最初に教えていただいた 参考URL:http://game.gr.jp/mag2p/2/loadjs/loadjs.htm に ありますテスト用外部スクリプトを▼次の位置に置き換えてボタンを押してみましたが うまく動作しませんでした。  dynamicLoad('http://www.googleadservices.com/pagead/conversion.js');  ↓  dynamicLoad('http://bosan.net/test2/test2.js'); ●2● 完売とサイズ選択未入力の判定する外部スクリプトについて 完売とサイズ選択未入力について▼次のような関数を外部スクリプトに置いています。 あまり好ましくないソースコードだと自分でも思うのですが、すでにこれで運用して いるため、他のコードとの兼ね合いもあり変更が困難になっています。 変更で他のコードが動作しなくなったときに、知識不足で自分自身で対応ができないからです。 なお、完売ときは<IMG src="soldout.gif" name="soldout">という画像を貼り付けることで アラートウインドウを表示しています。 - check.js - ──────────────────── function check(fm) { for (i = 0; i < document.images.length; i++) { if (document.images["soldout"]){ alert("完売しました!"); return false; } if (fm.size.options[fm.size.selectedIndex].text == '▼選択' ) { alert("サイズを選択してください!"); return false; } } //check() このコードを教えていただいたサンプルソースに適用させてみました。 [買い物かごに入れる]をクリック 完売ではない→サイズ選択がされている→Googleの外部スクリプトを実行。 外部スクリプトの読み出しのテスト方法がわからないため、動作しているか どうか不明です。 誤りがありましたらご指摘いただければ幸いです。 - check.js 変更後- ──────────────────── function dynamicLoad(jsFileName){ var now =new Date(); var getData =jsFileName+'?nc='+now.getTime(); if(document.all){ if(navigator.userAgent.indexOf("Win")!=-1){ eval(document.all('dynld')).src = getData; }else if(navigator.userAgent.indexOf("Mac")!=-1){ document.body.insertAdjacentHTML('BeforeEnd','<scr'+'ipt src="'+getData+'"><scr'+'ipt/>'); } }else if(document.getElementById){ var cnode=document.getElementById('dynld'); var nnode=document.createElement('script'); nnode.src=getData; nnode.id ='dynld'; cnode.parentNode.replaceChild(nnode,cnode); }else{ if(document.images){ var datasrc=new Image(); datasrc.src=getData; location.href=datasrc.src; } } } function check() { var google_conversion_id=12345678; var google_conversion_language="ja"; var google_conversion_format="1"; var google_conversion_color="FFFFFF"; if(1){ var google_conversion_value=1; } var google_conversion_label="Purchase"; for (i = 0; i < document.images.length; i++) {  if (document.images["soldout"]){  alert("完売しました!");  return false;  }  if (fm.size.options[fm.size.selectedIndex].text == '▼選択' ) {  alert("サイズを選択してください!");  return false;   } else { dynamicLoad('http://www.googleadservices.com/pagead/conversion.js'); } } document.write('<scr'+'ipt id="dynld"></scr'+'ipt>');

関連するQ&A

  • スクリプト外部ファイルを変数で指定する方法

    スクリプト外部ファイル(例えば、bbb.js)をhtml内へ読込むには、 <script language="JavaScript" scr="bbb.js"></script> と書く事を知りました。 ファイル名を変数(aaa="bbb.js")に入れて、変数aaaで読込む方法を教えて下さい。 次のように、変数aaaにファイル名bbb.jsを代入して、読込みたいのですが、動作しません。 <body> <script language="JavaScript"> aaa=location.search; aaa=aaa.substr(1,(aaa.length - 1)); </script> <script language="JavaScript" src=aaa></script>

  • 外部ジャバスクリプトファイルを呼び出す時

    外部ジャバスクリプトファイルを呼び出す時、htmlファイルに、 <script language="JavaScript1.1" src="***.js"></script> などと書いているのですが、どうも表示が遅いような気がしています。 この1.1というのはどういう意味なのでしょうか、それから、これは必要なのでしょうか? 宜しくお願いいたします。

  • 外部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();

  • これだけ外部スクリプトで動かない

    <script type="text/javascript"> <!-- kikan=4; function new4W(writeday){ if((new Date()-new Date(writeday))/(24*60*60*1000)<=kikan) document.write("<img src='/img/ic/new036.gif'>"); } // --> </script> <script>new4W("2008/03/16")</script> 指定した日付(この場合 2008/03/16)から4日間、 画像を表示させるものです。<body>~</body>でちゃんと動きます。 <SCRIPT LANGUAGE="JavaScript" SRC="http://~/js/newmark.js"></SCRIPT> <script>new4W("2008/03/16")</script> 外部スクリプトにしました。そのまま内容を移行しましたが動きません。 呼び出しの部分を <head>~</head>に挿入しても、それでも動きません。 指定を絶対パス・相対パスいづれでも動きません。 これとは別に「3月18日は○○さんの誕生日です」なる JavaScript を 外部から引いてますが、こちらは問題なくできています。 指定URLも直接移動で内容が表示されるのを確認しました。 どうかご指導いただければと思います。よろしくお願いします。

  • このスクリプトを説明してください

    以下のようなタグがあります。 (1) <script src="http://***.***.ne.jp/cgi-bin/feed.cgi?free" language="JavaScript"></script> これはどういうことなのか、教えてください。 今まで、 (2) <script language="JavaScript" src="abc.js"></script> のように外部ジャバスクリプトを呼び出すタグは使ったことがありますが、ジャバスクリプトで(1)のようにCGIを呼び出せるということなのでしょうか? また、(1)のfeed.cgiのあとにある、free というのは、どういうことなのでしょうか?無料とかではなく、実際にあるファイルは、feed.cgiという名前で終わっているはずですが、free という名前はその cgi の中にあるというところでしょうか?

  • 外部呼出しのjsファイルについて

    外部呼出しするファイルを直接HTML内に記述したいのですがどのようにしたらよいのかわかりません。 ご存知の方がいましたらお教えください。 通常の方法は分かるのですが... <script LANGUAGE="javascript" src="xxx.js"></script> このような形で記述したいです。 <script LANGUAGE="javascript"><!-- src="xxx.js"; //--> </script>

  • 外部スクリプトでどうしてもエラーが出ちゃう!

    こんにちわ。 早速なんですが、外部スクリプトに文章を入れてhtmlに記述したスクリプトでその文章を読み出そうとしてるんですが、 つまり外部スクリプト(ファイル名:test.js)の中は abc="あ~テストテストってこんな感じに書いて"; des="<FONT size="-1">にこめのテスト</FONT>"; って書いてhtmlの中に書くスクリプトは <html> <head><SCRIPT src="test.js"type="text/javascript"language="javascript"></SCRIPT> </head> <body> <SCRIPT type="text/javascript"> <!-- document.write(abc); // --> </SCRIPT> <SCRIPT type="text/javascript"> <!-- document.write(des); // --> </SCRIPT> </body> </html> って感じなんですが、これを開くと エラー';'がありません。 エラー'abc'は宣言されていません エラー'des'は宣言されていません ってでくるんです。もちろん、test.jsへのパスはあってます。 何か書き方が違っていましたら教えてください。

  • 外部ファイル名を変数で指定できるか?

    JavaScriptで参照する外部ファイルを、ヘッダー部で以下のように記述しています。 <script language="JavaScript" src="Data.js"></script> このsrc=で、指定するファイルを、変数で指定することは可能でしょうか? 試しに <script language="JavaScript"> <!-- var Src_File = "Data.js";  src=Src_File; //--> </script> と記述しても、エラーとなってしまいました。 変数を使いたい理由は、ラジオボタン等を使って、参照する外部ファイルを動的に切り替えたいのです。 よろしくお願いします。

  • 読み込む外部スクリプトをセレクトボックスを使って選べないでしょうか?

    お世話になります。 フォーム内に配置した、1から5までの数字を選べるセレクトボックスを使って、そのフォーム内に読み込む.jsファイルを選択することは出来ないでしょうか? 外部ファイルには、UsualSet.js、EmergencySet.js、PauseSet.jsなどがあって、そのスクリプトファイルの中身は document.write("<input name=\"youbi\" type=\"hidden\" value=\"土曜\"><input name=\"codenumber\" type=\"hidden\" value=\"732\"><input name=\"busho\" type=\"hidden\" value=\"経理\">"); とかいった感じになっています。 つまり、セレクトボックスで何番を選ぶかによって、CGIに渡す値を$youbiと$codenumberと$bushoとの3つ全ていっぺんに変更出来るようにしたい訳です。 しかし、そのセレクトボックスにどういう仕掛けをしたら良いかわからなくて困っています。 まさか、 <FORM ACTION="pro.cgi" METHOD="POST">  <select name="kazu">   <option value="<script language="javascript" src="UsualSet.js>" selected>1</option>   <option value="<script language="javascript" src="EmergencySet.js>" >2</option>   <option value="<script language="javascript" src="PauseSet.js>" >3</option>   <option value="<script language="javascript" src="MorningSet.js>" >4</option>   <option value="<script language="javascript" src="FulleSet.js>" >5</option>  </select>   <input type="hidden" name="kaijou" value="22890">  <input type="hidden" name="boxnumber" value="62">  <input type="submit" name="Submit" value="送信"> </FORM> なんてわけに行かないですもんね。 どうしたらいいかおわかりの方がいらっしゃいましたら、どうかよろしくお願い致します。

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

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