JavaScript コードをクライアントに追加する方法は、それを URL の擬似プロトコル指定子 javascript: の後に配置することです。この特殊なプロトコル タイプは、URL の本文が任意の JavaScript コードであり、JavaScript インタプリタによって実行されることを宣言します。 javascript:URL 内の JavaScript コードに複数のステートメントが含まれている場合、これらのステートメントはセミコロンで区切る必要があります。このような URL は次のようになります:
javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
ブラウザがそのような URL をロードすると、URL に含まれる JavaScript コードが実行され、最後の JavaScript ステートメントの文字列値が新しいドキュメントのコンテンツとして表示されます。この文字列値には HTML マークアップを含めることができ、ブラウザに読み込まれる他のドキュメントとまったく同じように表示されるように書式設定することができます。
JavaScript URL には、アクションを実行するだけで値を返さない JavaScript ステートメントを含めることもできます。例:
javascript:alert("hello world!")
この種の URL が読み込まれると、ブラウザはその中の JavaScript コードを実行するだけですが、新しいドキュメントとして表示する値がないため、現在表示されているドキュメントは変更されません。
通常、javascript:URL を使用して、現在表示されているドキュメントを変更しない JavaScript コードを実行します。これを行うには、URL の最後のステートメントが値を返さないようにする必要があります。 1 つの方法は、void 演算子を使用して戻り値を明示的に指定することです。 javascript:URL の最後に void 0; を使用します。例: 次の URL は、現在のウィンドウの内容を変更せずに、新しい空のブラウザ ウィンドウを開きます:
javascript:window.open("about:blank"); void 0;
この URL に void 演算子がない場合、window.open() メソッドの戻り値が文字列に変換されて表示され、以下に示すように現在のウィンドウがドキュメントによって上書きされます。