• 締切済み

JSの外部ファイルの書き方を教えてください

よろしくおねがいします。 私は初心者で技術者ではないですが、JavaScriptの項目はここだけのようなので質問させてください。 とある無料配布しているサイトからお借りしたもので、リンクにマウスが乗ると説明文がでるガイドメッセージのJSです。 外部ファイルはまた別のサイトで説明されていたとおりに書きました。 ほかのJSはそれで正常に動きましたが、このガイドメッセージだけはなぜか動きません。 サンプルではすべてHTML内に書いてありましたが、その通りにすると正常に動きます。 外部にするときはどこか変える場所があるのでしょうか・・・??? 自分はこんなふうに書いたのですが・・・ (外部ファイル内) function showMsg (text) { if(!document.getElementById) return; var msgbox = document.getElementById("msgbox"); msgbox.innerHTML = text; } (HTML内) (HEAD内) <script language="JavaScript" src="ファイルURL"></script> (body内) <a href="ファイルURL" onmouseover="showMsg('リンクの説明');" onmouseout="showMsg('いらっしゃいませ');">リンク文字</a> (リンクを表示させる場所) <p id="msgbox" lang="ja"> いらっしゃいませ</p>

みんなの回答

回答No.1

nakkiyさんこんにちは、papillon68と申します。 動きませんでしたというのは具体的にはどういった現象でしょうか。 javascriptのエラーが発生したのでしょうか。 外部ファイルの関数を実行しようとしているかをチェックしてみてはいかがでしょうか。 たとえば、 function showMsg(text) { alert(text); ・ ・ } といったように関数の始めにアラートを出してみるなどです。 アラートがでないようでしたら関数を実行していない可能性があります。 ブラウザのセキュリティなどにひっかかっているのかもしれません。 nakkiyさんのスクリプトを参考にして実行してみましたが、私のところでは正常に動作しました。 「   マウスオーバー時:リンクの説明   と表示   マウスアウト時 :いらっしゃいませ と表示                           」 test.js ------------------------------------------------- function showMsg(text) { if(!document.getElementById) return; var msgbox = document.getElementById("msgbox"); msgbox.innerHTML = text; } ------------------------------------------------- test.html ------------------------------------------------- <html> <head> <script language="JavaScript" type="text/javascript" src="test.js"></script> </head> <body> <a href="ファイルURL" onmouseover="showMsg('リンクの説明');" onmouseout="showMsg('いらっしゃいませ');">リンク文字</a> <p id="msgbox" lang="ja">いらっしゃいませ</p> </body> </html> -------------------------------------------------

nakkiy
質問者

お礼

親切にお答えいただきありがとうございました。 その後、訂正がありましたので、質問しなおすことにしてこちらはいったん締め切ります。 すみません。

nakkiy
質問者

補足

>動きませんでしたというのは具体的にはどういった現象でしょうか。 なにも返してこないです。alert(text); を入れてみましたが、無反応です。 JSの知識は皆無なので、失礼してpapillon68さんの書かれたのをコピペさせていただきましたが、動きませんでした・・・ いつもIEを使っているのでためしにネスケで映してみましたが、同じでだめでした。 私のOS環境のせいでしょうか? セキュリティはどこをいじくればいいのでしょうか? なきたいです・・・

関連するQ&A

  • 外部JSファイルの書き方で・・・

    午後にも同じ質問をしたのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1933867 訂正がありましたので、質問し直します。すみません。 外部JSファイルを作りましたが、なにも返してきません。 リンクにマウスが乗るとガイドメッセージが出るスクリプトと、雪が降るスクリプトを同じページに書いたのですが、ガイドメッセージには何の反応もなく、雪のほうはちゃんと動いていたので、てっきり呼び出しはできていると思い込んでいたのですが・・・ 雪のほうの外部ファイルのスクリプトを試しに削除してみたら、まだ動いていました・・・ なくても動くらしかったです。 外部ファイルの書き方を説明されているサイトさんから、簡単なスクリプトをお借りしてコピペしましたが、私がやるとどうしても動かないです。 ちなみに、スクリプトはこんなふうに書いています。 //<!-- 外部ファイル内--> function a() { alert("Oh!"); } <!-- HTML内 --> <head> <script type="text/javascript" src="フォルダ名/ファイル名.js"></script> </head> <body> <form> <input type="button" value="click" onClick="a()"> </form> </BODY> 私のファイルではウンともスンともいいません。 なぜだか見当もつきません。 どなたかお助けください・・・

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

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

  • 外部ファイル

    HTMLに、このような記述があり <script type="text/javascript" src="●●●.js"></script> 外に、「●●●.js」 というファイルがあります。 これは、「外部のjavascript」ファイルということでしょうか? また、この、「外部のjavascript」ファイルを開く(見る)には、どうしたらいいのでしょうか? ^^ どこか、おすすめのjavascriptのサイト、ご存知でしたら、教えてください。。。^^ (CSS外部ファイル。までは意味、わかるのですが、 javascript の関係はよくわかりません)

  • 外部JSファイルが読み込まない。

    javascriptの勉強をし始めて、二日目の初心者です。 jsファイルを使って、画像をIEで表示させたいのですが、上手く読み込んでくれません。 どうか、教えてください。 ---html----------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4,01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="common.js" type=text/javascript" charset="UTF-8"> </script> <script src="showImage2.js" type="text/javascript" charset="UTF-8"> </script> <title>キャラクターの表示</title> </head> <body onlaod="main()"> <noscript>JavaScriptを有効にしてください</noscript> </body> </html> ----js------------------------------------------------------------------------------ var img; function main() { img=document.createElement("img") document.body.appendChild(img); img.src="pcStay.png"; } ------------------------------------------------------------------------------------

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

    こんにちは、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"; //← これも上と同じく片方ずつ試しましたが、ダメでした。 }

  • <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から動的に呼び出したい

    呼び出し元のURLによって動作を変えたいJAVASCRIPTがあります。 普段外部のJAVASCRIPTを呼び出すときはよくこうするのですが <script type="text/javascript" src="js.php?key=url"></script> これでは「key=url」が固定になってしまいます。そこで下記のように <script> var commentname=document.URL; var str=encodeURIComponent(commentname); document.write('<script type="text/javascript" src="read.php?key=',str,'"><\/script>'); </script> document.writeを使って無理やり外部Javascriptファイルの呼び出しスクリプトを書いているのですが、この書き方はどうもエレガントさにかけるというか、いまいち気に入りません。 もっとほかに良い方法がある気がするのですが、調べてもわかりませんでした。おわかりになる方がいらっしゃったらご教示頂けないでしょうか。

  • 外部jsファイルにFlashを記述

    htmlファイル内にflash(swfファイル)を表示させる時に そのhtmlファイルに直接ソースを記述するのではなく、 該当部分に<script type="text/JavaScript" src="○○○.js"></script> と記述。 外部jsに"document.write"を使用してswfのソースを記述し、 上記htmlからjsファイルをリンクさせて読み込ませる、 という方法を使っている方がいらっしゃると思いますが、 私はいつも直接htmlファイル内にswfファイルのソースを 入れておりまして、上記の方法を使う意味がよくわかりません。 なせそうするのか?メリットがあるのではないかと思っておりますが、 ご存知の方いらっしゃれば教えていただけますか? JavaScriptもflashもまだ勉強中ですので、文章がわかりずらいかも しれませんが、よろしくお願い致します。

  • 外部ファイル(js)の呼び出し方法を教えてください。

    諸先輩方に、また質問させて下さい。 皆様のお力をお借りしjavascriptを利用してリンク先を変更させる事を解決する事が出来ましたが 外部呼出し(js)した場合、エラーが起こってしまいます。 他のjsファイルの場合は、何事も無く表示されるのですが、今回のリンク先変更という 変わった事をするのは初めての為、何が原因なのか全く解かりません。 jsに載せたいのは以下のスクリプトです。また表示させたいのはhtmlのテーブル内です。 恐らくですが・・テキストフォーム等が一緒だから駄目なのでしょうか・・・。 その場合の解決方法も教えていただければと思います。 呼び出すjsファイル例 <script language="javascript" src="change.js"> ======= <script> function change(){ var change=document.getElementById("change"); var tags=document.getElementsByTagName("a"); for(var i=0;i<tags.length;i++){ var url="http://aaa.bbb.ccc/"; var url2="?ddd="; var url3="eee"; var url4="&fff="; if(tags[i].href.match(url)){ tags[i].href=url+url2+url3+url4+change.value; }; } } </script> <a href="http://aaa.bbb.ccc/?ddd=eee&fff=xxxxx" target="_blank"> <img src="http://aaa.bbb.ccc/image/ddd.gif"></a> <br> <input type="text" id="change"><input type="button" value="変換" onclick="change()"> 以上です。宜しくお願いします。

  • jQuery.jsを使ったhtml外部読み込み

    教えてください。 現在Jqueryを使用して外部htmlを読み込ませようとしていますが、 うまくいきません・・・ ■本体html <head> <script src="js/jquery-1.8.3.min.js"></script> </head> <body> <script type="text/javascript" src="sample.js"></scrip> <div id="sample"></div> </body> ■sample.js // JavaScript Document $(function(){ $("#sample").load("sample.html"); }); ■読み込ませるsample.html 特に設定なし このような感じですが、全然読み込めません。。。 javascriptを外部リンクにしているのは、読み込むhtmlが複数ある為、 headの見栄えが悪くなるからという個人的な意見です・・・ 済みませんがお知恵をお貸しください!!