Document.open()

번역 작업 진행 중입니다.

Document.open() 메소드는 문서를  쓰기 위해 문서를 열 수 있도록 제공한다.

이 메소드 호출 시 몇 가지 부작용이 발생한다. 예를 들면,

  • 현재까지 등록된 모든 요소와 문서, 문서에 속한 윈도우 소속 이벤트 리스너가 모두 삭제된다.
  • 현존했던 모든 요소가 문서에서 삭제된다.

문법

document.open();

인자

없음.

Return value반환값

Document 객체 인스턴스.

예시

이 간단한 코드는 문서를 열면서, 원하는 내용을 작성하여 기존 HTML 문서 구조를 대체하고, 문서를 닫는 예제이다. 

document.open(); 
document.write("<p>Hello world!</p>");
document.write("<p>I am a fish</p>");
document.write("<p>The number is 42</p>"); 
document.close();

Notes

document.open() 메소드는 페이지를 불러온 후 document.write() 메소드 호출 시 자동으로 호출된다.

Firefox 및 Internet Explorer 에서는 기존까지 모든 요소 뿐 만 아니라 자바스크립트 변수까지 제거했었다. 하지만 현재 그런 경우는 없다.document non-spec'ed parameters to document.open

Gecko 특정 참고사항

Starting with Gecko 1.9, this method is subject to the same same-origin policy as other properties, and does not work if doing so would change the document's origin.

Starting with Gecko 1.9.2, document.open() uses the principal of the document whose URI it uses, instead of fetching the principal off the stack. As a result, you can no longer call document.write() into an untrusted document from chrome, even using wrappedJSObject. See Security check basics for more about principals.

document.open()의 인자 3개

잘 사용하지 않지만, document.open() 메소드는 3 개의 인자를 받을 수 있으며, 호출할 경우 Window.open() 메소드와 동일하게 동작한다(Window.open() 메소드 참고).

다음 예제는 Github 웹 사이트를 새 창으로 열게 되며, opener 개체를 null로 설정한다.

document.open('https://www.github.com','', 'noopener=true')

document.open()의 인자 2개

브라우저에서는 2개의 인자를 가진 document.open() 또한 가지고 있으며, 아래와 같은 구조를 가진다.

document.open(type, replace)

Where type 인자는 문서를 작성할 MIME 형식을 정의하며(예: text/html), 현재 히스토리를 대체(예: "replace") 하는 새 문서 작성을 시작할 수 있다.

하지만 이런 호출은 더 이상 사용할 수 없으며, 예외 또한 발생하지 않는다.대신 인자가 없는 document.open() 메소드가 호출되는 효과를 지니며, 대신 브라우저 히스토리 대체는 그대로 작동한다.

규격

Specification Status Comment
HTML Living Standard
The definition of 'document.open()' in that specification.
Living Standard
Document Object Model (DOM) Level 2 HTML Specification
The definition of 'document.open()' in that specification.
Obsolete

브라우저 호환성

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
openChrome Full support 64
Full support 64
No support 1 — 64
Notes
Notes Only supported for HTMLDocument, not all Document objects.
Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 51
Full support 51
No support ≤12.1 — 51
Notes
Notes Only supported for HTMLDocument, not all Document objects.
Safari Full support 11
Full support 11
No support 1 — 11
Notes
Notes Only supported for HTMLDocument, not all Document objects.
WebView Android Full support 64
Full support 64
No support 1 — 64
Notes
Notes Only supported for HTMLDocument, not all Document objects.
Chrome Android Full support 64
Full support 64
No support 18 — 64
Notes
Notes Only supported for HTMLDocument, not all Document objects.
Firefox Android Full support 4Opera Android Full support 47
Full support 47
No support ≤12.1 — 47
Notes
Notes Only supported for HTMLDocument, not all Document objects.
Safari iOS Full support 11
Full support 11
No support 1 — 11
Notes
Notes Only supported for HTMLDocument, not all Document objects.
Samsung Internet Android Full support 9.0
Full support 9.0
No support 1.0 — 9.0
Notes
Notes Only supported for HTMLDocument, not all Document objects.

Legend

Full support  
Full support
See implementation notes.
See implementation notes.

같이보기