To use the window module, import wixWindowFrontend
from the wix-window-frontend
module:
import wixWindowFrontend from "wix-window-frontend";
The APIs in wix-window-frontend
can only be used in frontend code.
Learn more about wix-window-frontend in Getting Started and on Wix Learn.
You can use the getAppPageData()
method for custom app pages to retrieve data you can use to customize the page. The data passed to each type of custom app page is different. This article lists the objects passed to each type of custom app page.
The object passed to a custom Booking Service page contains the following properties:
Name | Type | Description |
---|---|---|
service | Object | The Service object, which contains detailed data about the service. |
Note: If the page URL specifies a service that is deleted, hidden, or does not exist, the app returns null
.
Learn more about building a custom Service page.
The object passed to a custom Booking Calendar page contains the following properties:
Name | Type | Description |
---|---|---|
service | Object | The Service object, which contains detailed data about the service. |
The object passed to a custom Pricing Plans page contains the following properties:
Name | Type | Description |
---|---|---|
plan | Object | The Plan object, which contains detailed data about the plans. |
Note: If the page URL specifies a plan that is deleted, hidden, or does not exist, the app returns null
.
Learn more about building a custom Pricing Plans page.
Gets the locale of a site visitor's browser.
A locale, also known as an IETF language tag, is an abbreviated code that defines the language, country, and other aspects of a site visitor's browser, such as number format and date format.
Some common locales include:
"en-US"
: English, United States"en-GB"
: English, British"es-ES"
: Spanish, Spain"de-DE"
: German, Germany"ja-JP"
: Japanese, Japan"fr-CH"
: French, Switzerland"it-IT"
: Italian, Italyimport wixWindowFrontend from "wix-window-frontend";
// ...
let browserLocale = wixWindowFrontend.browserLocale; // "en-US"
Gets what kind of device is being used to view a page.
Note: This property only checks a site visitor's device, and not which Studio Editor's breakpoint they are using.
The formFactor
property gets one of:
"Desktop"
: When viewed in a desktop browser."Mobile"
: When viewed in a mobile browser."Tablet"
: When viewed in a tablet browser.Important: Some tablet devices (such as iPads) are identified in this property as "Desktop".
import wixWindowFrontend from "wix-window-frontend";
// ...
let formFactor = wixWindowFrontend.formFactor; // "Mobile"
Gets the HTTP referrer header field.
The referrer
is the address of the web page a site visitor was previously
on before arriving at the current page, typically by clicking a link.
Note: When site visitors move from page to page within your site, the referrer
property
does not contain the address of the page the site visitor came from. This is because
Wix sites are built as single page applications.
To get the previous page a site visitor was visiting within your site, you can
use wix-storage-frontend
to store the visitor's current page
and retrieve the visitor's previous page.
import wixWindowFrontend from "wix-window-frontend";
// ...
let referrer = wixWindowFrontend.referrer; // "http://somesite.com"
Gets which mode a site is currently being viewed in.
The viewMode
property gets either:
"Preview"
: When previewing a site using the Preview button in the editor."Site"
: When viewing a published site."Editor"
: When viewing a Wix Blocks built widget in the editor.import wixWindowFrontend from "wix-window-frontend";
// ...
let viewMode = wixWindowFrontend.viewMode; // "Site"
Copies text to a site visitor's clipboard.
The copyToClipboard()
method copies the specified text to a site visitor's clipboard.
If a site visitor's browser doesn't support copying text to the clipboard
programmatically, a modal popup that allows copying will be displayed.
For example, when calling copyToClipboard()
from a Firefox or Edge browser,
a site visitor will see something similar to the popup shown below.
The Promise returned by copyToClipboard()
resolves when the
specified text is copied to clipboard or the modal popup is closed.
The Promise is rejected if a null
value is passed as the toCopy
parameter
or if a site visitor's browser blocks the modal popup from opening.
function copyToClipboard(text: string): Promise<void>;
The text to copy.
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend
.copyToClipboard("Text to copy!")
.then(() => {
// handle case where text was copied
})
.catch((err) => {
// handle case where an error occurred
});
Gets the data passed to a custom app page.
Wix passes data to custom app pages that you can use when implementing a page's business logic.
Call the getAppPageData()
method to retrieve the data and use it in your code.
The data retrieved by this method is different for each type of custom app page.
For more information, see App Page Data.
Learn more about building custom app pages.
Note: If you call getAppPageData()
for a page that isn't
a custom app page, it returns null
.
function getAppPageData(): object;
import wixWindowFrontend from "wix-window-frontend";
// ...
let appData = wixWindowFrontend.getAppPageData(); // {nextSection: {sectionId: "Booking Form"}}
Gets information about a window.
Returns information about a window's size, document's size, and current scroll position.
This method returns null
for sites with SSR.
function getBoundingRect(): Promise<WindowSizeInfo>;
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend.getBoundingRect().then((windowSizeInfo) => {
let windowHeight = windowSizeInfo.window.height; // 565
let windowWidth = windowSizeInfo.window.width; // 1269
let documentHeight = windowSizeInfo.document.height; // 780
let documentWidth = windowSizeInfo.document.width; // 1269
let scrollX = windowSizeInfo.scroll.x; // 0
let scrollY = windowSizeInfo.scroll.y; // 120
});
Gets the current geolocation of a site visitor.
The getCurrentGeolocation()
method has the following limitations:
getCurrentGeolocation()
with a setTimeout()
in case the browser is set to not detect the locale. Adding the timeout lets you handle the unfulfilled promise.function getCurrentGeolocation(): Promise<CurrentGeolocation>;
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend
.getCurrentGeolocation()
.then((obj) => {
let timestamp = obj.timestamp; // 1495027186984
let latitude = obj.coords.latitude; // 32.0971036
let longitude = obj.coords.longitude; // 34.774391099999995
let altitude = obj.coords.altitude; // null
let accuracy = obj.coords.accuracy; // 29
let altAccuracy = obj.coords.altitudeAccuracy; // null
let heading = obj.coords.heading; // null
let speed = obj.coords.speed; // null
})
.catch((error) => {
let errorMsg = error;
});
Gets the data sent by a router to a page as part of its response.
When you define a router and its functionality in the router() method, you can include data in the router's response.
This data can then be accessed in the code of the routed page by calling the getRouterData() method. If you call this method from a non-router page or a router
page that wasn't sent any data, the method returns null
.
function getRouterData(): object;
import wixWindowFrontend from "wix-window-frontend";
// ...
let routerData = wixWindowFrontend.getRouterData();
Opens a lightbox and optionally passes it the given data.
The openLightbox()
method opens a lightbox and allows you to pass data to it.
Lightboxes that are opened automatically on page load, or via a link from a page element don't receive passed data.
To ensure data can be passed:
onClick
event handler that calls openLightbox()
.If you pass data to a lightbox, call the getContext()
method in the lightbox's code to access the received data.
Notes:
openLightbox()
. You can find the lightbox's name by selecting the lightbox and clicking the settings button.openLightBox()
after the onReady()
method, once all page elements have finished loading.function openLightbox(name: string, data: object): Promise<object>;
The name of the lightbox to open.
The data to pass to the lightbox.
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend.openLightbox("LightboxName");
Opens a modal window that displays the specified web page.
A modal window displays the page specified by the url
property over
your current page. Unlike a lightbox, which
is opened by calling the openLightbox()
method, a window
opened by openModal()
is not part of a site's structure.
Only one modal window can be open at any given time. Therefore, opening a modal window closes an already open modal window if there is one.
Note: The specified url
must be an HTTPS URL.
function openModal(url: string, options: OpenModalOptions): Promise<void>;
The URL of the page to show in the modal window.
Modal window options.
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend.openModal("https://en.wikipedia.org/wiki/Wix.com", {
width: 750,
height: 500,
});
Sends a message to a page's parent.
If a page is embedded within another site, using an HtmlComponent on a Wix site or an iframe on a non-Wix site, call this method to send a message from the inner site to the outer site.
When the parent site is a Wix site, call onMessage()
to receive the message on the parent page.
When the parent site is a non-Wix site, use the page's window.onMessage
event handler to read the data
property of the received MessageEvent
to receive the message on the parent page.
function postMessage(message: object, target: string): Promise<object>;
The message to send.
The target to send the message to. Must be "parent"
or omitted. Default: "parent"
.
/* * * * * * * * * * * * * * * * * * * * * * *
* Code for the inner site to post a message *
* * * * * * * * * * * * * * * * * * * * * * */
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend.postMessage(dataObj);
/* * * * * * * * * * * * * * * * * * * * * * * * *
* Code for the outer site to receive a message *
* * * * * * * * * * * * * * * * * * * * * * * * *
*
* $w("#myHtmlComponent").onMessage( (event, $x) => {
* let message = event.data;
* } );
*/
Scrolls a page by the specified number of pixels.
The x
and y
parameters determine the number of horizontal and vertical
pixels to scroll the current page. Negative numbers scroll up or to the
left and positive numbers scroll down or to the right.
function scrollBy(x: number, y: number): Promise<void>;
The horizontal offset, in pixels, to scroll by.
The vertical offset, in pixels, to scroll by.
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend.scrollBy(100, 500);
Scrolls a page to the specified location.
The x
and y
parameters determine the top-left pixel that is
displayed on screen after the scroll.
Tip: To get the coordinates for scrolling, click on an element to open the Inspector panel (Wix Studio), or open the Editor toolbar (Wix Editor). Then move the cursor to the top-left pixel where you want the page to scroll to. The X and Y axis Position values show the coordinates.
Use the options
parameter to specify the options to use when scrolling.
function scrollTo(
x: number,
y: number,
options: ScrollToOptions,
): Promise<void>;
The horizontal position, in pixels, to scroll to.
The vertical position, in pixels, to scroll to.
Scrolling options.
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend.scrollTo(100, 500);
Sends a tracking event to external analytics tools.
Sends an event to analytics tools connected to your site. It can send events to Google Analytics, Facebook Pixel or analytics tools set up with the Google Tag Manager.
Learn more about:
Note: This method only runs on published versions of your site. It doesn't work when previewing your site.
The trackEvent()
method lets you track both standard and custom events.
The following standard events are supported:
Standard Event | Description | Used By |
---|---|---|
AddPaymentInfo | When a site visitor saves payment information. | Google Analytics , Facebook Pixel |
AddProductImpression | When a site visitor views a product. | Google Analytics |
AddToCart | When a site visitor adds a product to the shopping cart. | Google Analytics , Facebook Pixel |
CheckoutStep | When a site visitor completes a checkout step. | Google Analytics |
ClickProduct | When a site visitor clicks on a product. | Google Analytics |
CompleteRegistration | When a site visitor completes the registration. Note: The CompleteRegistration event doesn't take any parameters. | Facebook Pixel |
InitiateCheckout | When a site visitor starts the checkout process. | Google Analytics , Facebook Pixel |
Lead | When a site visitor subscribes to a newsletter or submits a contact form. | Google Analytics , Facebook Pixel |
Purchase | When the customer successfully completes the checkout process. | Google Analytics , Facebook Pixel |
RemoveFromCart | When a site visitor removes a product from the shopping cart. | Google Analytics |
Schedule | When a site visitor schedules a meeting or makes an appointment. Note: The Schedule event doesn't take any parameters. | Facebook Pixel |
StartPayment | When a site visitor starts the payment process. | Google Analytics |
ViewContent | When a site visitor views a key page, for example the product page. | Google Analytics , Facebook Pixel |
function trackEvent(eventName: string, parameters: union): void;
Event name. Applies to both standard and custom events. The following standard events are supported:
AddPaymentInfo
AddProductImpression
AddToCart
CheckoutStep
ClickProduct
CompleteRegistration
InitiateCheckout
Lead
Purchase
RemoveFromCart
Schedule
StartPayment
ViewContent
The event's parameters. Note: The CompleteRegistration
and Schedule
events don't take any parameters.
import wixWindowFrontend from "wix-window-frontend";
// ...
wixWindowFrontend.trackEvent("Lead");