클라이언트에 자바스크립트 코드를 추가하는 방법은 URL에서 의사 프로토콜 지정자 javascript: 뒤에 배치하는 것입니다. 이 특수 프로토콜 유형은 URL 본문이 JavaScript 인터프리터에 의해 실행되는 임의의 JavaScript 코드임을 선언합니다. javascript:URL의 javascript 코드에 여러 문이 포함된 경우 이러한 문은 세미콜론으로 구분해야 합니다. 해당 URL은 다음과 같습니다.
javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
브라우저가 이러한 URL을 로드하면 해당 URL에 포함된 자바스크립트 코드를 실행하고 마지막 자바스크립트 문의 문자열 값을 새 문서의 내용으로 표시합니다. 이 문자열 값은 HTML 마크업을 포함할 수 있으며 브라우저에 로드된 다른 문서와 똑같이 나타나도록 형식이 지정될 수 있습니다.
javascript URL에는 작업만 수행하고 값을 반환하지 않는 javascript 문이 포함될 수도 있습니다. 예:
javascript:alert("hello world!")
이런 종류의 URL이 로드되면 브라우저는 그 안에 있는 자바스크립트 코드만 실행하지만, 새로운 문서로 표시할 값이 없기 때문에 현재 표시된 문서를 변경하지 않습니다.
보통 우리는 현재 표시된 문서를 변경하지 않는 일부 자바스크립트 코드를 실행하기 위해 javascript:URL을 사용하려고 합니다. 이렇게 하려면 URL의 마지막 문이 값을 반환하지 않는지 확인해야 합니다. 한 가지 방법은 void 연산자를 사용하여 반환 값을 underfined로 명시적으로 지정하는 것입니다. javascript:URL 끝에 void 0; 문을 사용하면 됩니다. 예: 다음 URL은 현재 창의 내용을 변경하지 않고 비어 있는 새 브라우저 창을 엽니다.
javascript:window.open("about:blank"); void 0;
이 URL에 void 연산자가 없으면 window.open() 메서드의 반환 값이 문자열로 변환되어 표시되며, 아래와 같이 현재 창을 문서로 덮어씁니다.