エラー&トラブル一覧


 ◆〜はエラーおよびトラブル。サンプルリストは、エラーが発生するプログラム。


◆実行されない
◆実行されない(2)
◆実行されない(3)
◆改行して表示されない
◆エラーは出ないが定義してある関数が呼び出されない
◆サブウィンドウが表示されない
◆外部スクリプトが動かない
◆外部スクリプトでエラーになる
◆外部スクリプトを呼び出したまま戻ってこない
◆システムがハングアップする
◆「docmuent is not defined.」エラー
◆unterminated string literal./missing ) after argument list.エラー
◆write cannot be converted to a function.エラー
◆関数名 is not defined.
◆変数名 is not defined.
◆return used outside a function.
◆missing } after function body.
◆missing { before function body.
◆missing ) after argument list.
◆missing operator in expression. (1)
◆missing operator in expression. (2)
◆missing ( before formal parameters.
◆syntax error. ( <!C-命令〜)
◆true has no properties.
◆命令 is not a function.
◆random is not a function.
◆test for equality (==) mistyped as assignment (=)? Assuming equality test.
◆オブジェクト名 is not a number.
◆変数名 is not a numeric literal.
◆syntax error. (if (9 =< 2)〜)
◆JavaScriptError:URL
◆フォームが参照できない
◆setTimeout関数でメモリエラーが出る

◆実行されない
 </SCRIPT>が抜けているため<!--// --></HEAD><BODY></BODY></HTML>というタグが表示されてしまう。</SCRIPT>タグを入れれば動作する。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--


// -->
</HEAD>
<BODY></BODY></HTML>


◆「docmuent is not defined.」エラー
 スペルミス(つづりが間違っている)。docmuentをdocumentに修正すれば動作する。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
docmuent.write("TEST STRING");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆改行して表示されない
 document.writelnは正常に動作しない。document.write("〜<BR>");のように<BR>タグを入れれば解決する。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.writeln("TEST STRING1");
document.writeln("TEST STRING2");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆unterminated string literal./missing ) after argument list.エラー
 このエラーは文字列が正常に囲まれていない時に発生する。例えばdocument.write("90');のように"で囲み始めたのに、終わりが'になっている。囲みの最後の文字を"にすれば動作する。同様に'で囲み始めたら'で終わらなければならない。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write('TEST STRING1");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆write cannot be converted to a function.エラー
 関数名にオブジェクトの名前を使用すると発生する。関数名を命令以外のものに修正すれば動作する。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function document()
{
document.write("OpenSpace");
}
document();
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆関数名 is not defined.
 関数の呼び出し時に発生する。関数が定義されていないか、呼び出し側の関数名が間違っている。大文字小文字の違いでもエラーになる。関数名を正しく修正すれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function print()
{
document.write("Welcome to OpenSpace");
}
Print();
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆return used outside a function.
 return文で戻るところが見つからない。関数外で使用すると発生する。関数外では使用しない事。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
return;
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆missing } after function body.
 関数が中カッコで閉じられていない。}をつければ直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function err(){
w2 = window.open("","New Page");

// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆missing { before function body.
 関数の定義で{がない。{をつければ直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function err()
w2 = window.open("","New Page");
}
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆エラーは出ないが定義してある関数が呼び出されない
 同じ名前の関数を定義している。JavaScriptでは関数の二重定義をしてもエラーにならない。この場合、呼び出される関数は最後に定義したものになる。関数名を変更すれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function err(){ document.write("err1") }
function err(){ document.write("err2") }
err();
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆サブウィンドウが表示されない
 window.open()で2番目の引数(ウィンドウタイトル)に半角の空白が入ると時されない。空白を削除すれば動作する。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
w2 = window.open("","New Page");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆外部スクリプトが動かない
 Netscape Navigator 2.0では正式にサポートされていない。拡張子が.js以外になっている。


◆外部スクリプトでエラーになる
 HTMLのタグが記述されている。HTMLタグを全て消せば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write("testPage");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆外部スクリプトを呼び出したまま戻ってこない
 Netscape Navigator 3.0b5以前のバグ。外部呼び出しスクリプトを2つ以上記述すれば直る。正式版では直っている。

<HTML><HEAD><TITLE>External Call</TITLE></HEAD>
<BODY>
<HR>
<SCRIPT src="ex.js"></SCRIPT>
<HR>
</BODY></HTML>


◆missing ) after argument list.
 )で閉じられていない。関数、命令の引数でカッコで閉じられていない場合に発生する。)を付ければ直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function err(){ document.write("error" }
err();
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆missing operator in expression.
 命令の呼び出しで(が抜けている。(を付ければ直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function err(){ document.write"error") }
err();
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆missing ( before formal parameters.
 関数の呼び出しで(が抜けている。(を付加すれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
function err){ document.write("error") }
err();
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆missing operator in expression. (2)
 命令を続けて記述すると発生する。;を命令の間につければ直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write("error1")document.write("error2")
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆実行されない(2)
 </HEAD><BODY>Error Test<BR></BODY></HTML>などのようなタグが表示される。document.write文中に<SCRIPT>の文字が入っている。次のようにすれば直る。
document.write("<"+"SCRIPT>");

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write("<SCRIPT>");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆syntax error. ( <!C-命令〜)
 document.write文中に<SCRIPT></SCRIPT>が組みになっている。SCRIPTタグのネスティングと解釈されてしまうためエラーになる。次のように修正すれば直る。
document.write("<"+"SCRIPT>");

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write("<SCRIPT><!--");
document.write("documnet.write(99);</SCRIPT>");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆true has no properties.
 命令を続けて記述している。別々に記述すれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write("OpenSpace1").write("OpenSpace2");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆命令 is not a function.
 関数ではないのに関数呼び出しをしている。または関数のメソッドになっている。関数を作成する。メソッドの前にオブジェクトを指定すれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write("OpenSpace1".write("OpenSpace2"));
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆random is not a function.
 Netscape Navigator 2.0では使用マシンがUNIX(サーバーではない)でないと乱数の生成が行われない。疑似乱数生成プログラムを作成するかNetscape Navigator 3.0以降を使用する。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write(Math.random());
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆実行されない(3)
 他のタグが正常に記述されていない。タグが正しく記述されているか確認する。

<HTML><HEAD><TITLE>ERROR TEST/TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write("test");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆変数名 is not defined.
 変数に値が入っていないのにif(a == 1)などのように参照しようとした。参照前にa = 0;などのように値を設定しておけば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
if(a == 1) document.write("12345");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆test for equality (==) mistyped as assignment (=)? Assuming equality test.
 if文の条件式が間違っている。a == 0のように記述しなければ、ならない所をa = 0のように代入文になっている。=を==にすれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
if(a = 1) document.write("12345");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆オブジェクト名 is not a number.
 オブジェクトを演算しようとした。変数名に変更すれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
document.write(Math/9);
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>



◆変数名 is not a numeric literal.
 変数に入っているデータが数値ではない。文字列などが入っている。eval()関数等で数値に変換してから演算すれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
a = "TGSHAKL";
document.write(a/9);
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆syntax error. (if (9 =< 2)〜)
 不等号の記述が間違っている。=<ではなく<=にすれば直る。

<HTML><HEAD><TITLE>ERROR TEST</TITLE>
<SCRIPT Language="JavaScript">
<!--
if (9 =< 2) document.write("OK!");
// -->
</SCRIPT>
</HEAD>
<BODY>
Error Test<BR>
</BODY></HTML>


◆JavaScriptError:URL (技)
 エラーのあるJavaScriptの含まれているHTMLの場所を表示するだけでなくクリックすると、そのURLへジャンプする。
line n:
 n行目にエラーを引き起こしたScript文がある、ただし他の部分が原因で、エラー
になった可能性がある。



◆システムがハングアップする
 Macの場合、Alert()などを使用するとハングアップしやすくなる。また、

 document.clear();

 のように、自分自身を消してしまうような命令を実行している可能性がある。



◆フォームが参照できない
 フォームに同じ名前の物があると参照できなくなる場合がある。NAME="〜"の名前を変えればよい。



◆setTimeout関数でメモリエラーになる
 この命令の前にclearTimeout命令を記述すればよい。これは割り込みカウンタと呼び出し先がメモリにたまってしまうために発生する。