ブラウザへの情報表示

更新 : 2007 年 11 月

ブラウザは、ほとんどの JScript の機能に対応していますが、.NET Framework 用の新機能であるクラス ベースのオブジェクト、データ型、列挙型、条件付きコンパイル ディレクティブ、および const ステートメントは、サーバー側だけでサポートされています。このため、これらの機能はサーバー側のスクリプトだけで使用します。詳細については、「JScript のバージョン情報」を参照してください。

スクリプトをブラウザ (クライアント側) で実行する場合、経験の豊富な開発者は、スクリプト エンジンのバージョンを検知するコードを挿入します。スクリプトでエンジンのバージョンを検知した後、ブラウザのスクリプト エンジンと互換性のあるスクリプトを使用したページにブラウザをリダイレクトできます。詳細については、「ブラウザの機能の検出」を参照してください。

JScript は、ブラウザのドキュメント オブジェクトの write および writeln メソッドを使用して、ブラウザに情報を表示します。また、ブラウザ内のフォームや、警告、入力、および確認の各メッセージ ボックスにも情報を表示できます。詳細については、「メッセージ ボックスの使用」を参照してください。

document.write と document.writeln を使用する

情報を表示する最も一般的な方法は、document オブジェクトの write メソッドを使用することです。このメソッドには、ブラウザに表示する文字列を受け取るための引数が 1 つあります。引数に指定する文字列は、書式なしのテキストでも HTML でもかまいません。

文字列を囲む引用符には、単一引用符 (') も二重引用符 (") も使用できるので、文字列の中で引用符やアポストロフィを使用できます。

document.write("Pi is approximately equal to " + Math.PI);
document.write();
fs135695.alert_note(ja-jp,VS.90).gifメモ :

次の簡単な関数を使用すると、ブラウザ ウィンドウにテキストを表示しようとするたびに「document.write」と入力する手間を省くことができます。この関数では、記述しようとした内容が未定義であってもエラーは発生せず、代わりにコマンド w(); を実行して空白行を表示します。

function w(m) { // Write function.
   m = String(m); //  Make sure that the m variable is a string.
   if ("undefined" != m) { // Test for empty write or other undefined item.
      document.write(m);
   }
   document.write("<br>");
}

w('<IMG SRC="horse.gif">');
w();
w("This is an engraving of a horse.");
w();

writeln メソッドは、write メソッドとほとんど同じですが、文字列の最後に必ず改行文字を追加します。HTML では通常、この改行は単なる空白文字に変換されますが、<PRE> タグや <XMP> タグの内部で使用した場合は、そのまま改行文字としてブラウザに表示されます。

write メソッドが呼び出されたときに、ドキュメントが開いて解析するプロセスにない場合、write メソッドはそのドキュメントを開いてクリアします。これにより、予測できない結果となる場合があります。次の例は、1 分おきに時刻を表示するように記述したスクリプトです。プロセス中に自分自身をクリアしてしまうため、2 回目以降の表示処理は失敗します。

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JScript">
function singOut()  {
   var theMoment = new Date();
   var theHour = theMoment.getHours();
   var theMinute = theMoment.getMinutes();
   var theDisplacement = (theMoment.getTimezoneOffset() / 60);
   theHour -= theDisplacement;
   if (theHour > 23)  {
      theHour -= 24
   }
   // The following line clears the script the second time it is run.
   document.write(theHour + " hours, " + theMinute + " minutes, Coordinated Universal Time.");
   window.setTimeout("singOut();", 60000);
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
singOut();
</SCRIPT>
</BODY>
</HTML>

document.write の代わりに window オブジェクトの alert メソッドを次のように使うと、このスクリプトは正常に動作します。

   // This line produced the intended result.
window.alert(theHour + " hours, " + theMinute + " minutes, Coordinated Universal Time.");

Internet Explorer Version 5 以降では、element.innerText または element.innerHTML の使用が望ましい方法です。

現在のドキュメントをクリアする

document オブジェクトの clear メソッドは、現在のドキュメントの内容をクリアします。このメソッドは、ドキュメントのほかの部分と一緒にスクリプトもクリアするため、使用には十分注意する必要があります。

document.clear();

参照

概念

メッセージ ボックスの使用

ブラウザの機能の検出

その他の技術情報

JScript での情報の表示