• ベストアンサー

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

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

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

  • ベストアンサー
  • Y_eRu
  • ベストアンサー率32% (33/101)
回答No.4

すみません 懲りずにまたお邪魔しますm(_ _)m 外部ファイル(../js/menu.js)の書き方のことなのですが <script language="JavaScript"></script> なども書かれてはいないですか? 私もタグごとコピーしてダメだったことがあるので・・ そんなこと! でしたらすみません(>_<) 失礼しましたC= C= \(;・_・)/

noname#225081
質問者

お礼

なんということでしょう。 初歩的なミスで大変申し訳ない次第です。 <script>タグを記載しておりました・・・。 おかげさまで無事に動作確認できました。 本当にしつれいしましたー(^^:

その他の回答 (4)

noname#6248
noname#6248
回答No.5

●menu.jsに <script language="JavaScript"> </script> と言うタグが書かれていたら消す。 ●htmlファイルに <script src='../js/menu.js'></script> としてみる。 ですかね… これでダメならソースがNGなのかもしれません… あとは…とほほを読むに限るかな…http://tohoho.wakusei.ne.jp/

参考URL:
http://tohoho.wakusei.ne.jp/js/write.htm#jsfile
noname#6248
noname#6248
回答No.3

おそらくmenu.jsのなかに function mmLoadMenus(){  … } があるのでしょうかね。 <script language="JavaScript">mmLoadMenus();</script> ではなく、 <input type="button" value="押すと実行" onClick="mmLoadMenus()"> <body onLoad="mmLoadMenus()"><!-- 表示された時に実行する --> 等と記述すればおそらくは動くかと思います。 他に問題があるとするとmenu.jsファイルの位置でしょうかね <script language="JavaScript" src="../js/menu.js"></script> これですと実際にhtmlの入っているフォルダと同一階層にjsフォルダがあり、その中にmenu.jsがなければなりません (↓のような階層ならばOK) □ ├□XXX │└■htmlファイル ├□js  └■menu.jsファイル □:フォルダ ■:ファイル 仮に↓のような場合でしたら □ ├□XXX  ├■htmlファイル  ├□js   └■menu.jsファイル <script language="JavaScript" src="./js/menu.js"></script> と記述する必要があります。

noname#225081
質問者

補足

ご指摘の通り、menu.js内には、 function mmLoadMenus(){  … } でかかれているスクリプトがあります。(ポップアップリストメニューを表示させてます) もともと全部1ファイルだったのを、<script language="JavaScript">~</script>までカットして、外部ファイル(menu.js)として保存しました。 階層は、前者の階層です。 □ ├□XXX │└■htmlファイル ├□js  └■menu.jsファイル 同階層でないとリンクしないのかとも思い、 □ ├□XXX │├■htmlファイル │└■menu.jsファイル の階層でも試してみましたが、やはりエラーがでます。 オリジナルの1ファイル内にすべて記述してある時は何も問題ないのですが、カットして外部ファイルにすると、 「ランタイムエラーが発生しました  デバッグしますか?  行:1  エラー:構文エラーです」 とアラートがでます。 これは、外部ファイルの相対パスが間違っているとか、関数が呼び出せないとは違う時限のエラーなんでしょうか? 無知なもので、ご教授願えると助かります。

  • shy00
  • ベストアンサー率34% (2081/5977)
回答No.2

ランタイムエラー? もし、そのようなエラーの場合はJavaSprictが呼び出せないのとは 関係ないのでは?? ランタイムエラーは、通常必要なランタイムが入っていない場合 出ますよね・・・? で <script language="JavaScript">mmLoadMenus();</script> は何を読んでいるのでしょうか? 普通、外部リンクした場合、META内もしくは呼びたい場所に <script type="text/javascript" src="./****.js"></script> と記述します 外部ファイルにしたため、JavaSprictが動かないのは ・jsファイルへの記述が悪い ・呼び出し方が悪い ・jsファイルへのパスが間違っている などが考えられます。 再度確認してみてください またMETA内に <meta http-equiv="content-script-type" content="text/javascript"> も記述しましょうね

noname#225081
質問者

補足

ファイルパスが間違っているということはないと思います。 でも、メタタグは追記しておきました。 (書いておいて損はないので) ありがとうございます。

  • Y_eRu
  • ベストアンサー率32% (33/101)
回答No.1

こんにちわ(o^-^o) ><script language="JavaScript">mmLoadMenus();</script> >と記述してある部分があるのですが、うまく呼びだせてないようで これはどういう時に呼びたいスクリプトなのでしょうか・・? スクリプトを呼ぶのは、外部か同じファイル内かは関係なく タグ内に普通に書けばいいのではないかと思うのですが・・ 見当違いだったらすみません 失礼しましたm(_ _)m

参考URL:
http://www.openspc2.org/reibun/javascript/kihon/002/index.html

関連するQ&A

専門家に質問してみよう