- ベストアンサー
エラー内容を特定する
- 普段はページを表示していてもエラー画面がでませんが、数十~数百回に一回程度の頻度でエラー画面が表示されてしまいます。
- パソコン環境は、OS:WindowsXP ブラウザ:InternetExplorer7です。
- エラー画面の詳細情報では以下のように書かれています。 -------------------------------------- ライン:30 文字:1 エラー:オブジェクトを指定してください。 コード:0 URL: 表示させているURL --------------------------------------
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 『外部』というのを忘れていましたね(--;) 外部呼出しは何処に書いていようと関係ないようです(<head>内に書くのが正規だと思いますが) 試しに</body>の手前に外部呼出しを入れてみましたがちゃんと機能しました ですので外部js内にエラーがあるということです え~~と、言葉で説明するの難しいので自分の試したのを挙げると・・・ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> <meta http-equiv="imagetoolbar" content="no"> <script type="text/javascript" src="../js/erea.js"></script> <link rel="stylesheet" href="../css/erea.css" type="text/css"> <title></title> </head> 【erea.js】 window.onload = function() { deny(); document.getElementById("enemy1-0").innerHTML = msg1; document.getElementById("enemy2-0").innerHTML = msg2; document.getElementById("enemy3-0").innerHTML = msg3; document.getElementById("shop1").innerHTML = msg4; document.getElementById("bank1").innerHTML = msg5; document.getElementById("tensei1").innerHTML = msg6; document.getElementById("move").innerHTML = msg7; imageset(); timeimage(); } function deny() { 省略 } function imagese() { 省略 } この場合のエラー表示は 『ライン:11行 文字:1 エラー:オブジェクトを指定してください』 です 感じ的には<meta>は無視されて<html>以下1行目~となり 0:<html> 1:<head> (2):<script type="text/javascript" src="../js/erea.js"></script> 2:window.onload=function() { 3:deny(); 4:document.getElementById("enemy1-0").innerHTML = msg1; 5:document.getElementById("enemy2-0").innerHTML = msg2; 6:document.getElementById("enemy3-0").innerHTML = msg3; 7:document.getElementById("shop1").innerHTML = msg4; 8:document.getElementById("bank1").innerHTML = msg5; 9:document.getElementById("tensei1").innerHTML = msg6; 10:document.getElementById("move").innerHTML = msg7; 11:imageset(); 12:timeimage(); 13:} で、エラー行(11行目)にimageset();というのがありますが外部js内でfunction imagese() { }となっておりimageset()に対するfunctionが存在していないことになりますのでエラーとなっています 上記のだと分かりにくいならば・・・ 外部jsでは無く <script language="javascript"><!-- 外部jsの中身 //--></script> のように埋め込みスクリプトにして調べるか 数十~数百に1回ということはランダム起動でもしているのかもしれないので中々でないかもしれないですがもっと簡単に調べようと思えばFirefoxのツール『エラーコンソール』をみれば分かるかもしれません 上記例の場合だと『imageset is not defined 行:10』という風に表示されます IEは結構アバウトなので普通に表示できてるように見えてもFirefoxなどで見るとCSSなど結構エラーや警告が出ます(><)
その他の回答 (1)
- leap_day
- ベストアンサー率60% (338/561)
こんにちは 「表示させているURL」の中のソース30行目に存在しないものがあるということです 30行目に ***(); のようなものがありませんか? それに対する function ***() { } が無いということではないでしょうか?
お礼
有難うございます。調べてみましたところ、外部ファイルが30行目以降に書かれていたのが原因のようです。ソースの上の方に外部ファイルを持ってきたところ、いまのところエラーが表示されなくなりました。 外部ファイルにjavascriptを記述する場合は、通常は<head>と</head>の間に外部ファイルを書いた方がよろしいのでしょうか?
お礼
わかりやすくご説明いただき有難うございます。おかげさまで解決しました。