• ベストアンサー

外部JavaScriptファイルを読み込む

<HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- function textReset(){ this.form1.userName.value=""; this.form1.passWord.value=""; } //--> </SCRIPT> </HEAD> のJavaScriptファイルを外出しにして、 <HEAD> <SCRIPT LANGUAGE="JavaScript" SRC="/jsp/script.js"></SCRIPT> </HEAD> という風に呼び出そうとしているのですが、うまくいきません。どこに問題があると考えられるのでしょうか?

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

  • ベストアンサー
  • shorn
  • ベストアンサー率41% (12/29)
回答No.5

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <%@page contentType="text/html;charset=Cp943c" %> <HTML> <HEAD> <SCRIPT LANGUAGE=JAVASCRIPT> <!-- alert('<%=request.getContextPath()%>'); <% String MES=request.getContextPath(); if(MES==null){MES="NULL";} else if(MES.equals('')){MES="0String";} %> alert('<%=MES%>'); //--> </SCRIPT> </HEAD><BODY></BODY></HTML> これで何も表示されないのなら JAVAXが入ってない? (でもそれならエラー画面か、) まあそれはともかく 絶対URLで指定すればいいんですけどね。 ともかく<%=request.getContextPath()%>なんですよ。 これが使えないとJSPで相対アドレスは難しいです。 VAJのテスト環境ってところが引っかかりますが・・・ もしかしてWEB実行で表示されるような画面でIE起動せずの形ですか? VAJ(あまり知らない・・・) ちゃんとサーバーを立てて実行環境を作ってみては? 最新版でないと出来なかった利というのも在りますし。 JDKやらほとんどのものを最新にしてみては?

その他の回答 (4)

  • shorn
  • ベストアンサー率41% (12/29)
回答No.4

実行環境(WAS)を教えてください。

mikmik_a
質問者

補足

VAJのテスト環境で実行しています。

  • shorn
  • ベストアンサー率41% (12/29)
回答No.3

<%= request.getContextPath() %> だけ使って表示後にソースを開いてみてどの部分がかかれているか見てみてください。 それでアドレスバーにかかれているアドレスと見比べてください。 読み込んだら通常どおりの関数の実効命令でかまいません。 不安だったらアラートを使って試してみては? ちなみに<%= request.getContextPath() %>/script.js じゃあ無理ですよ。 <%= request.getContextPath() %>/パッケージ最上部(webの下)/..../script.js

mikmik_a
質問者

補足

<%= request.getContextPath() %> の結果は何も表示されませんでした。

  • shorn
  • ベストアンサー率41% (12/29)
回答No.2

<SCRIPT src="<%=request.getContextPath()%>/****.js"></script> のようにしてみては? request.getContextPath() について調べてみればわかりますよ。 これはJAVASCRIPTではなくJSPの問題です。 フォルダなどの構造がわからないためこのくらいしかいえませんが。

mikmik_a
質問者

補足

やってみましたがうまくいきませんでした。 外出しにしてるスクリプトの関数をHTMLファイルで、 onClick="XXX()"みたいに呼び出しても大丈夫なんですか?

  • Kizz
  • ベストアンサー率47% (30/63)
回答No.1

はじめまして、mikmik_aさん。 ・外部ファイル(/jsp/script.js)の方はタグは不要なはずです。  #かかれているコードでいうと以下だけを書けばよいです。 function textReset(){ this.form1.userName.value=""; this.form1.passWord.value=""; } ・HTMLファイルの方で外部javascriptファイルを指定する<script>タグの属性  では、LANGUAGE="JavaScript" はいらないかな‥。  #あっても大丈夫かもだけど、私は書いた事がない。src="~~"のみ。 ・あとは、そのサイト上"/jsp/script.js"というパスの指定があっているか。 位ですかね。 参考にして試してみてください。 がんばってね。

mikmik_a
質問者

補足

外部ファイルのタグは消しましたがまだうまくいきません。 パスの方ですが、jsファイルはjsp(HTML)ファイルと同じディレクトリにあります。 jspファイルをform actionで指定する際には、 action="/jsp/XXXX.jsp"という風に指定しています。 SRC="/jsp/script.js"であっていますか?

関連するQ&A

  • 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
  • 外部ファイルで窓を閉じたい

    外部ファイルで窓を閉じたくて次のように作ってみたんですが 窓が閉じません。どなたかアドバイスお願いします。 -- a.html -- <html> <head> <script language="JavaScript" src="sub.js"></script> </head> <body> <input type="button" value="閉じる" onclick="wc(window.name);"> </body> </html> -- sub.js -- function wc(mado){ mado.close(); }

  • 外部ファイルを読み込めない

    初めまして。いつも質問やその回答を読ませていただいて、参考にさせていただいてます。 javascriptで作った超簡単なプログラムが動かないんです。 どなたか、助けてください。(>_<) 以下、test.htmlとtest.jsを作って、試して見ているのですが、動かない理由が分からず苦しんでいます。 =============test.html============= <html> <head> <script type="text/javascript" language="javascript" src="./test.js" ></script> </head> <body> <table> <form name="form2" method="post" onSubmit="return check()"> <tr><td><input type="text" name="names" size="50"></td></tr> <tr><td><input type="submit" name="submit" value="予約"></td></tr> </form> </table> </body> </html> =============test.html============= =============test.js============= function check(){ names=document.form2.names; if(names.value == ""){ alert("お名前を入力してください。"); names.focus(); return false; } else return true; } =============test.js============= どちらも、同じディレクトリに入れています。safari、ieでも×です。 どなたか、教えていただけませんでしょうか。

  • 外部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ファイルを読み込む

    上位のフォルダのjavascriptを読み込みたいのですがエラーになります。なんか勘違いしてるのでしょうか。 下記のような設定は間違ってますか? <script language="JavaScript" src="../func.js"></script>

  • 外部JavaScriptがうまく呼び出せません

    お世話になっております。 お分かりになります方いらっしゃいましたら、 ご教授願えますでしょうか? 人材を募集する応募フォームを作っています。 応募フォームの項目にはいくつか必須項目があり、 送信ボタンを押した際、必須チェックをJavaScriptで 行いたいと思っています。 チェックする項目が多数あるので、直接htmlファイルには書き込まず、 外部jsに書き出して、htmlファイル上で呼び出す方法をとる事にしました。 htmlに直接書き込んだ際にはうまく動いたので、 JavaScriptの内容が悪いのではないと思うのですが、 送信ボタンを押しても、必須項目がチェックされず、 そのまま項目が空のメールが届いてしまいます。 以下に該当のコードを記入いたしますので、 原因がお分かりになります方、ご教授頂いてもよろしいでしょうか? ・外部js:oncheck.js ・cgi:send.cgi 【oncheck.js】 <!-- function check(){ ・ (必須項目のチェックを行っています) ・ } //--> 【htmlファイル】 <html> <head> <title>採用情報</title> <script language=JavaScript src="oncheck.js" type=text/javascript> </script> </head> <body> <h3>応募フォーム</h3> <form method="POST" action="send.cgi" name="応募フォーム" onSubmit="return check()"> ・ ・ ・ <input type="submit" value=" 送信 "> <input type="reset" value=" 取消 "> </form> </body> </html> 呼び出し方に問題があるのでしょうか? 宜しくお願い致します。

  • 外部ファイルにするとテキストが書き込めない

    こんにちは、javascript初心者です。 HTMLのtextarea内のテキストを変えたいのですが、HTMLにJSを埋め込むと動作するのですが、外部JSファイル読み込みだとなぜか何も表示されません。 なぜでしょうか。原因のわかる方、説明をどうかよろしくお願い致します。 ●HTML <head> <script src="test.js" type="text/javascript"></script> </head> <body> <form name="form1"> <textarea name="message" id="msg" rows="5" cols ="50"></textarea> </form> </body> ●JS window.onload = message(); function message(){ alert("hello");              //←これはちゃんと動作します。 document.getElementById("msg").value="hello"; //← 動作せず。 document.form1.message.value="hello"; //← これも上と同じく片方ずつ試しましたが、ダメでした。 }

  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type="text/javascript" src="main.js"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = '<script language="JavaScript">'; html += 'var url0101 = "url01.xxx.jp";'; html += 'var url02 = "url02.oooo.jp";'; html += '</script>'; html += '<script language="JavaScript" src="http://xxx.xxxx.xxx/test.js"></script>'); html += '<script language="JavaScript">'; html += 'Function01("check")'; html += '</script>'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type=\"text/javascript\" src=\"main.js\"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = \'<script language=\"JavaScript\">\'; html += \'var url0101 = \"url01.xxx.jp\";\'; html += \'var url02 = \"url02.oooo.jp\";\'; html += \'</script>\'; html += \'<script language=\"JavaScript\" src=\"http://xxx.xxxx.xxx/test.js\"></script>\'); html += \'<script language=\"JavaScript\">\'; html += \'Function01(\"check\")\'; html += \'</script>\'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • md5.jsとbase64.jsがスクリプトのJavaScriptのパ

    md5.jsとbase64.jsがスクリプトのJavaScriptのパスワード設定について、教えて下さい。 JavaScriptを扱っているサイトで、以下のを使用しているのですが、そのサイトであまり詳しい説明が書かれてないので四苦八苦しています。 契約しているサーバーのセキュリティー上、CGIとPHPが使えないので、JavaScriptを使用したいと思っています。 インデックスページに設置して、パスワードが通ったらトップページに移動するようにさせたいと思っています。 以下ので、どこが不備なのか分からないので、教えて下さい。 JavaScriptに関しては初心者なのですが、初心者で以下のは難易度が高いのでしょうか? また、md5.jsとbase64.jsそのものの設定が問題なのでしょうか? 本当に困っていますので、是非とも教えて下さい。 お願いします。 <html> <Head> <script language="JavaScript" src="md5.js"></script> <script language="JavaScript" src="base64.js"></script> <script language="JavaScript"><!-- var pwmd5 = ""; function passchk() { var pw; pw = document.f.passwd.value; pw = base64encode(pw); pw = MD5_hexhash(pw); if(pw ==pwmd5 ) else alert("パスワードが違います"); } // --> </script> <body> <form name="f"> <input type=text name="passwd"><input type=button value="入室" onClick="passchk()"></form></body> </Head> </html>