プロが教える店舗&オフィスのセキュリティ対策術

ページを早く表示させるために、コピー&ペーストでスクリプトを外部ファイル化しました。

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

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

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

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

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

A 回答 (5件)

すみません


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

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

失礼しましたC= C= \(;・_・)/
    • good
    • 0
この回答へのお礼

なんということでしょう。
初歩的なミスで大変申し訳ない次第です。
<script>タグを記載しておりました・・・。

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

本当にしつれいしましたー(^^:

お礼日時:2003/08/21 00:08

●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
    • good
    • 0

おそらく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> と記述する必要があります。

この回答への補足

ご指摘の通り、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
    • good
    • 0

ランタイムエラー?


もし、そのようなエラーの場合は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">

も記述しましょうね

この回答への補足

ファイルパスが間違っているということはないと思います。

でも、メタタグは追記しておきました。
(書いておいて損はないので)
ありがとうございます。

補足日時:2003/08/20 16:30
    • good
    • 0

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



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

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

見当違いだったらすみません
失礼しましたm(_ _)m

参考URL:http://www.openspc2.org/reibun/javascript/kihon/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!