• ベストアンサー
  • すぐに回答を!

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

  • 質問No.632495
  • 閲覧数1051
  • ありがとう数2
  • 回答数5
ページを早く表示させるために、コピー&ペーストでスクリプトを外部ファイル化しました。

<script language="JavaScript" src="../js/menu.js"></script>

↑とコピペした外部ファイルへリンクさせ、その後、

<script language="JavaScript">mmLoadMenus();</script>

と記述してある部分があるのですが、うまく呼びだせてないようでランタイムエラーがでます。
すべてのJavaScriptを1ファイル内に記述しているときはうまく動作しているのですが、外部ファイルに切り離すとエラーが出ます。

外部ファイル化したために、mmLoadMenus();が動作しないので、どなたか分かる方、アドバイスをお願いします!!

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

  • 回答No.4
  • ベストアンサー

ベストアンサー率 32% (33/101)

すみません
懲りずにまたお邪魔しますm(_ _)m

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

失礼しましたC= C= \(;・_・)/
お礼コメント
noname#225081
なんということでしょう。
初歩的なミスで大変申し訳ない次第です。
<script>タグを記載しておりました・・・。

おかげさまで無事に動作確認できました。

本当にしつれいしましたー(^^:
投稿日時:2003/08/21 00:08

その他の回答 (全4件)

  • 回答No.5
●menu.jsに
<script language="JavaScript">
</script>
と言うタグが書かれていたら消す。

●htmlファイルに
<script src='../js/menu.js'></script>
としてみる。

ですかね…
これでダメならソースがNGなのかもしれません…
あとは…とほほを読むに限るかな…http://tohoho.wakusei.ne.jp/
  • 回答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
 エラー:構文エラーです」
とアラートがでます。
これは、外部ファイルの相対パスが間違っているとか、関数が呼び出せないとは違う時限のエラーなんでしょうか?

無知なもので、ご教授願えると助かります。
投稿日時:2003/08/20 16:28
  • 回答No.2

ベストアンサー率 34% (2081/5977)

ランタイムエラー?
もし、そのようなエラーの場合は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
ファイルパスが間違っているということはないと思います。

でも、メタタグは追記しておきました。
(書いておいて損はないので)
ありがとうございます。
投稿日時:2003/08/20 16:30
  • 回答No.1

ベストアンサー率 32% (33/101)

こんにちわ(o^-^o)

><script language="JavaScript">mmLoadMenus();</script>
>と記述してある部分があるのですが、うまく呼びだせてないようで

これはどういう時に呼びたいスクリプトなのでしょうか・・?
スクリプトを呼ぶのは、外部か同じファイル内かは関係なく
タグ内に普通に書けばいいのではないかと思うのですが・・

見当違いだったらすみません
失礼しましたm(_ _)m
関連するQ&A
ページ先頭へ