AboutSupportDeveloper GuideVersion 38.126.83.84

An iframe represents an embedded HTML page within a parent HTML page. Because this embedded page has its own DOM and global JS context (which may or may not be linked to that of the parent depending on if it is considered out of the root domain or not), it represents a unique endpoint as an OpenFin connection. Iframes may be generated dynamically, or be present on initial page load and each non-CORS iframe has the OpenFin API injected by default. It is possible to opt into cross-origin iframes having the API by setting api.iframe.crossOriginInjection to true in a window's options. To block all iframes from getting the API injected you can set api.frame.sameOriginInjection to false (see Window Options).

To be able to directly address this context for eventing and messaging purposes, it needs a unique uuid name pairing. For OpenFin applications and windows this is provided via a configuration object in the form of a manifest URL or options object, but there is no configuration object for iframes. Just as a call to window.open outside of our Window API returns a new window with a random GUID assigned for the name, each iframe that has the API injected will be assigned a GUID as its name, the UUID will be the same as the parent window's.

The fin.Frame namespace represents a way to interact with iframes and facilitates the discovery of current context (iframe or main window) as well as the ability to listen for frame-specific events.

Hierarchy

Properties

identity: Identity

Accessors

  • get me(): Identity
  • Provides access to the OpenFin representation of the current code context (usually a document such as a OpenFin.View or OpenFin.Window), as well as to the current Interop context.

    Useful for debugging in the devtools console, where this will intelligently type itself based on the context in which the devtools panel was opened.

    Returns Identity

Methods

  • Returns (string | symbol)[]

  • Returns a frame info object for the represented frame.

    Returns Promise<FrameInfo>

    Example

    async function getInfo() {
    const frm = await fin.Frame.getCurrent();
    return await frm.getInfo();
    }
    getInfo().then(info => console.log(info)).catch(err => console.log(err));
  • Returns a frame info object representing the window that the referenced iframe is currently embedded in.

    Returns Promise<FrameInfo>

    Remarks

    If the frame is embedded in a view, this will return an invalid stub with empty fields.

    Example

    async function getParentWindow() {
    const frm = await fin.Frame.getCurrent();
    return await frm.getParentWindow();
    }
    getParentWindow().then(winInfo => console.log(winInfo)).catch(err => console.log(err));
  • Parameters

    • type: string | symbol

    Returns number

  • Parameters

    • type: string | symbol

    Returns Function[]

  • Adds a one time listener for the event. The listener is invoked only the first time the event is fired, after which it is removed. The listener is added to the beginning of the listeners array.

    Type Parameters

    • EventType extends "connected" | "disconnected"

    Parameters

    Returns Promise<Frame>

    Remarks

    Event payloads are documented in the OpenFin.Events namespace.

  • Removes all listeners, or those of the specified event.

    Parameters

    • Optional eventType: "connected" | "disconnected"

    Returns Promise<Frame>

  • Remove a listener from the listener array for the specified event.

    Type Parameters

    • EventType extends "connected" | "disconnected"

    Parameters

    Returns Promise<Frame>

    Remarks

    Caution: Calling this method changes the array indices in the listener array behind the listener.