scriptをjsファイルに外出しにする方法

このQ&Aのポイント
  • 初心者の方でも分かりやすく解説します。JSPファイル内のJavaScriptのscript部分を外部のJSファイルに移動する方法をご紹介します。
  • 関数sendSrchAction内の引数lActionについて説明します。また、<%=AAConfig.AAAAA_FLAG_SRCH%>の部分の書き換え方についても解説します。
  • JSPファイル内のscript部分を外部のJSファイルに移動することで、コードの管理性が向上します。また、パラメータを受け取る関数sendSrchActionの使い方についても解説します。
回答を見る
  • ベストアンサー

scriptをjsファイルに外出しにしたいのですが・・・

こんにちわすいません! 初心者です!! 今回仕事で既存のファイルのJSPファイルの中のjavascriptのscript部分をjsファイルに外出しにしたいのですが・・ 引数にパラメータをしている関数がありまして・・・どうやればよいのかどなたか教えてください。 こんな関数です。 function sendSrchAction(lAction){ with (document.forms[0]){ actionNameTxt.value=lAction; cmdtyFlagTxt.value="<%=AAConfig.AAAAA_FLAG_SRCH%>"; action='<%=BBBSrvSite%>'; submit(); } } ="<%=AAConfig.AAAAA_FLAG_SRCH%>";この部分をどうすればよいのか・・すいませんが宜しくお願いいたします。

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

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.1

その部分をJavaScriptの関数の引数にして、ディレクティブは呼び出し側jspで引数のところに書いてあげる、というのは駄目なのでしょうか? あとは、単純にファイルを別にしたいだけなら、jsじゃなくてそっちもjspとしておいてincludeしてあげるというのはどうですか?

関連するQ&A

  • JSP内のScriptの部分をjsファイルに外だしする方法

    JSP内のScriptの部分をjsファイルに外だしする方法 JSPとサーブレットで作成されたWebアプリを開発しています。IE7以上 今回JSP内のスクリプトの部分をjsファイルにまとめようと思っているのですがサーブレットからの値(<%= %>)をどのようにしてjsファイル内で使用する方法を教えて下さい。 function keyEnter(idx) { if(event.keyCode != 13) return; if(document.data.text1[idx].name == "<%= Param.ID %>"){ document.data.<%= LoginParam.PASSWORD %>.focus(); } else if(document.data.text1[idx].name == "<%=Param.PASSWORD %>"){ formSubmit(); } } <%= Param.ID %>, <%=Param.PASSWORD %>はサーブレットからの引数です。 これが外だしにするとエラーになります。 いい案があれば教えてください。

  • 単一のフォームオブジェクトを外部ファイル(.js)に送る意味?

    とある2つの別ファイル(A.jspとB.jsp)でそれぞれ単一のフォームを使用しています。 そこで各フォームの処理で共通部分を別の外部ファイル(.js)にまとめる場合、例えば。。。フォームの名前を取得してその名前をalertで表示する。。。みたいな処理を外部ファイルに作成します。 A.jsp:<form method='post' name='frmA' onsubmit='return getFrmName(this)'> B.jsp:<form method='post' name='frmB' onsubmit='return getFrmName(this)'> 外部ファイル:共通関数 getFrmName(frm){ alert(frm.name); } ボタンが押されたらalertで表示する。通常なら、”frmA”とか”frmB”って出ます。 ここで、以下のように変更する。 A.jsp:<form method='post' name='frmA' onsubmit='return getFrmName()'> B.jsp:<form method='post' name='frmB' onsubmit='return getFrmName()'> 外部ファイル:共通関数 getFrmName(){ alert(document.forms[0].name); } と、引数のフォームオブジェクトを消して”document.forms[0]”に書き換えた場合でも正常に稼動されます。 その場合、引数なしでも十分なのでは? というか、引数なしの方がより見やすいプログラムになるのでは? また、そのファイルにあるフォーム数を数えるような処理を最初に追加すれば、”document.forms[Index]”:Index(カウントしたフォーム数)にして多重フォームにも対応できるように汎用できそう・・・? 長くなりましたが、上記のタイトルにある通り、フォームオブジェクトを引数とする意味は?できればメリット、デメリット両方があればうれしいです。よろしくお願いします。 <だいたい適当に書いたので多少の省略等はしてますが、ご了承ください>

  • jsファイルで配列を定義し、jsファイルを切りかえて使う

    お世話になります。 jsファイルで配列を定義し、その配列の内容を表示しています。 いくつかのjsファイルで配列を定義し、そのjsファイを切りかえることにより、表示する配列の内容を切りかえることはできないでしょうか。 例えば data_a.js DataAry = new Array( new WNData('2006/11/10','ああ','・・.html'), new WNData('2006/11/10','いい','・・.html'), ・・・・・ ); data_b.js DataAry = new Array( new WNData('2006/11/10','aa','・・.html'), new WNData('2006/11/10','bb','・・.html'), ・・・・・ ); dspDataAry.jsで function WNData(Date,Cmnt,Href,Target){ this.Date=Date; this.Cmnt=Cmnt; this.Href=Href; } function DspData(){ strhtml="・・・・ (DataAryを表示するhtmlを作成) return strhtml; } dspDataAry.htmlで <script type='text/javascript' src='dspDataAry.js'></script> <script type='text/javascript' src='data_a.js'></script> <body> <script type='text/javascript'><!-- document.write DspData(); //--> </script> <input id="btn_b" type="button" value="bを表示" onClick="bを表示する関数"<br> </body> とすれば、data_a.jsの配列の内容が表示されます。 ボタン「bを表示」を押すことにより、 data_b.jsを読み込んで、その内容を表示するようにできないものでしょうか。 onClick="bを表示する関数"この「bを表示する関数」をいう関数をどのように書いたらよいのかわかりません。 data_a.js、data_b.jsで定義する配列名は同じとします。 data_c.js、data_d.js・・・といくつかに分けたく思っています。 前もってdata_b.jsを読み込むのでなく、必要に応じて読み込んで表示するようにしたいのですが。 よろしくお願いいたします。

  • 外部jsファイルから本体の関数を呼ぶには

    外部jsファイルを読み込んで処理する以下の1の例のようなプログラムがありました。 外部ファイルを読み込む前に処理をスタートしているからか、 get()が見つからないとエラーがでる場合がありました。 1の例) ■index.html window.onload = function loaded(){ get('a'); } ■outer.js function get(a){ alert(a); } そこで2の例のように外部ファイルから本体の関数を呼ぶようにしましたが、 これは毎回オブジェクトが見つからないとエラーがでます。 2の例) ■index.html function loaded(){ get('a'); } ■outer.js function get(a){ alert(a); } window.onload = loaded(); そこで質問なのですが、1の例からエラーが無くなる様に外部ファイルを完全に読み込んだのを判断して処理を始めるというのはどういう風に書けばいいのでしょうか? もう一つ、2の例のように外部jsファイルから本体の関数を呼ぶにはどう書けばいいのでしょうか?(例では簡単に書いていますが実際は複雑で、本体をキックしたいのです) ぜひアドバイスを頂ければと思っております。宜しくお願い致します。

  • HTMLファイルと分ける場合について

    JavaScriptを script.js として保存し、 完全にHTMLとJavaScriptを分けたいです。 script.js の中には関数が複数存在しています。 script.js の中では、それらの関数が使われていないです。関数があるだけです。 そこで、 <script src="script.js"type="text/JavaScript"/> などとした場合関数に引数を渡し実行することはできないですよね? パラメータというか、そういうことはできないですか?

  • Javascriptの中に外部jsファイルを呼び出したい。

    入力フォームで都道府県などのたくさん項目がある プルダウンメニューやセレクトボックスを外部化し jsの中には document.write('<option value="1">北海道</option>'); document.write('<option value="2">青森</option>'); document.write('<option value="3">岩手</option>'); document.write('<option value="4">宮城</option>'); などとし、ファイル名は「todou.js」としました。 セレクトボックスの外部ファイルは document.write('<option value="1">インターネット</option>'); document.write('<option value="2">テレビ</option>'); document.write('<option value="3">新聞</option>'); などとし、外部ファイルは「kikkake.js」としました。 htmlのところには <tr><td>都道府県:</td> <td><select> <script src="select1.js"type="text/javascript"> </script> などとし、載せることはできました。 しかし、最後に送信ボタンを押した時に 確認するためにアラートで選択したものを出したい時に どうやって呼び出したらよいのでしょうか? 色々調べてみたらまず <script language="JavaScript" src"todou.js"></script> とすると書いてありました。 しかし複数の外部ファイルを呼び出すためにはどうしたら よいのでしょうか? あとアラートで確認するために function Check(){ var myTodou = document.myForm.src"todou.js".value; alert('都道府県:' + myTodou); とするのでしょうか? 不備部分がありましたらご指摘ください。 どうかよろしくお願いします。

  • JSの値をPERLで受け取りたいんですが

    JSの値をPERLで受け取りたいんですが 例えばCGIのファイルで my $value;     print "<script type=\"text/javascript\">";     print "hoge();"; #このメソッドの値を$valueに受け取りたい print "</script>"; JS側ではまあ function hoge(){ return Value; } みたいな事って出来ないんでしょうか? メソッドのところで  print $value="hoge();"; とか   print "$value=hoge();"; とかやってもできません。

  • PHP内でjsファイルの関数は使えないのでしょうか

    こんばんは、Webページ制作の勉強で問題にぶつかり、少々お知恵をお借りしたく質問させて頂きました。 あるPHPファイルの中の <!doctype html> <html> //ここにHTMLの記述があるとします。 </html> のHTMLの記述の中に <script src="example_A.js"></script> <script src="example_B.js"></script> のような形で他のページでも使っているJavascriptのファイルを読み込んで使用しようとしたのですが、一部の処理だけが行われないようのです。 そこでjsファイルの中で使えない記述に共通点が無いか確認してみたところ、 $(function() {   //ここに処理 }); のように、関数のみが動作して居ない事が解りました。 そこで質問なのですが、PHPファイルの中では、<html>の中で記述されたスクリプトだとしても関数の中で記述された処理は使えないという事なのでしょうか? また、もしPHPの中でも関数を動作させる方法があれば、教えて頂けないでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP
  • Win IEかprototype.jsのバグでは?

    prototype-1.6.1.jsのAjax.Updaterを使用して、FORM情報をPOSTする際に、 ある条件で、JavaScriptで、submitオブジェクトのclick関数を呼び出した場合、 InternetExplorer系(6、7、8)において、 idで指定した部分の内容がPOST送信後に呼び出されるページに 切り替わらないという現象が発生しています。 尚、他のブラウザではidで指定した内容が、 POST送信後に呼び出されるページに切り替わっています。 ○確認したブラウザ Firefox3系 Opera 11.00 Safari 5.0 Win InternetExplorer 6,7,8 JavaScript側 - Ajax.Updater呼び出し function blogCommentRegist(id,form){ new Ajax.Updater(id, url, { postBody : Form.serialize(form), method: 'post'}); } HTML側 <form action="/comment-regist" onsubmit="javascript:pageCTRL.blogCommentRegist('doc_div_respond',this);return false;"> …(text、textarea)… <input type="submit" name="submit-type" value="戻る" class="submit" id="comment-submit"/> <input type="button" name="submit-button" value="submit" class="submit" onclick="javascript:$('comment-submit').value='submit';$('comment-submit').click();"/> </form> 他のページではbuttonオブジェクトからsubmitオブジェクトのclick関数呼び出しをしていないもので、 正常にPOST送信後に呼び出されるページに切り替わっています。 このclick関数呼び出しだと正常に切り替わらない不具合というのがあるか、 また解決方法を分かる方、 是非ともご教示頂きたいと思います。

  • JSP内で外部jsファイルを指定する

    昨日から散々悩んでいます。 tomcatのJSPから外部jsファイルが読み込めません。 最初htmlのみでテストしたのですが そのときは何の問題も無く動きました。 URLの指定の仕方かなと思いましたが、 cssのほうは同じ指定の仕方で効いています。 <!---------- JSP内容 ------------------------> <!-- [テスト]ボタン押下でscript実行 --> <html> <head> <title>テスト</title> <script Language='JavaScript'    type='text/javascript' charset="shift_jis" src='/Test/script/Script.js'> </script> <script language='JavaScript' type='text/javascript'> <!-- function test(){ jstest(); } function test1(){ alert("test1:OK"); } // --> </script> <link rel="stylesheet" href="/Test/css/Style_ver1.css" type="text/css"> </head> <body> <form> <input type='button' class="button" value='テスト' onclick="test()"> </form> </body> </html> <!---------- 外部js内容------------------------> function jstest(){ alert("jstest:OK"); } <!---------------------------------------------> onclick="test1()"にすると動きます。 以前に作られた別アプリケーションのJ2EEのソースを見ると、 src=<c:url とcoreタグが使用されています。 coreタグの使用なしにURLを書くことはできないのでしょうか? すいませんが、どなたか教えてください。 宜しくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう