# window.postMessage

Words for this topic. Lessons use these words only. Do not use a synonym.

## Language

**Origin**:
A scheme, a host, and a port together. Example: `https://app.example`.
_Avoid_: Domain, site, source, URL (a URL has a path; an origin does not)

**Same origin**:
Two pages have the same origin when the scheme, the host, and the port all match.
_Avoid_: Same site, same domain

**WindowProxy**:
The handle you hold for another window (`iframe.contentWindow`, `parent`, `top`, `opener`, the result of `window.open`).
_Avoid_: Window object, the iframe, the other page (those names hide the handle)

**contentWindow**:
The WindowProxy of the window inside an iframe element.
_Avoid_: The iframe window, the frame

**parent**:
The WindowProxy of the embedding page. If this page is not in an iframe, parent is this window.
_Avoid_: Parent window, outer window, host page

**top**:
The WindowProxy of the outermost page. If this page is not in an iframe, top is this window.
_Avoid_: Top window, root window, browser window

**opener**:
The WindowProxy of the page that opened this window. If no page opened this window, opener is null.
_Avoid_: Owner, parent (parent is the embedder, not the opener)

**postMessage**:
The function that sends a copy of data to another WindowProxy.
_Avoid_: Call, invoke, letter, mail, mailbox, stamp

**targetOrigin**:
The origin that may receive the data. If the receiver origin does not match, the browser discards the data and does not throw.
_Avoid_: Delivery stamp, address, recipient filter

**event.origin**:
The origin of the sender at the time of the send.
_Avoid_: Who wrote, sender stamp

**event.source**:
The WindowProxy of the sender. On a port message this field is not the window.
_Avoid_: Sender window, who wrote (that is event.origin)

**ready**:
A message the child sends after it has added its listener. The parent waits for this message before it sends data.
_Avoid_: Handshake, ping, ack

**Structured clone**:
The copy of the data that the browser makes when you use postMessage. This topic does not teach the type list. See the Structured Clone topic.
_Avoid_: Serialize, deep copy (in this topic)

**MessageChannel**:
Two paired ports. You keep one port. You transfer the other port.
_Avoid_: Pipe, mailbox, channel (alone)

**MessagePort**:
One end of a MessageChannel. After you transfer that end, you cannot use it.
_Avoid_: Socket, pipe end

**close**:
The MessagePort method that disconnects the pair. After close, a send on that port does not arrive.
_Avoid_: Kill, destroy, unsubscribe
