2023-04-25 13:25:59 +02:00

79 lines
3.4 KiB
Markdown
Executable File

## IFrame Page Methods
These methods are available in the iFrame via the `window.parentIFrame` object. These method should be contained by a test for the `window.parentIFrame` object, in case the page is not loaded inside an iFrame. For example:
```js
if ('parentIFrame' in window) {
parentIFrame.close()
}
```
### autoResize([bool])
Turn autoResizing of the iFrame on and off. Returns bool of current state.
### close()
Remove the iFrame from the parent page.
### getId()
Returns the ID of the iFrame that the page is contained in.
### getPageInfo(callback || false)
Ask the containing page for its positioning coordinates. You need to provide a callback which receives an object with the following properties:
* **iframeHeight** The height of the iframe in pixels
* **iframeWidth** The width of the iframe in pixels
* **offsetLeft** The number of pixels between the left edge of the containing page and the left edge of the iframe
* **offsetTop** The number of pixels between the top edge of the containing page and the top edge of the iframe
* **scrollLeft** The number of pixels between the left edge of the iframe and the left edge of the iframe viewport
* **scrollTop** The number of pixels between the top edge of the iframe and the top edge of the iframe viewport
* **documentHeight** The containing document's height in pixels (the equivalent of `document.documentElement.clientHeight` in the container)
* **documentWidth** The containing document's width in pixels (the equivalent of `document.documentElement.clientWidth` in the container)
* **windowHeight** The containing window's height in pixels (the equivalent of `window.innerHeight` in the container)
* **windowWidth** The containing window's width in pixels (the equivalent of `window.innerWidth` in the container)
* **clientHeight** (deprecated) The height of the containing document, considering the viewport, in pixels (`max(documentHeight, windowHeight)`).
* **clientWidth** (deprecated) The width of the containing document, considering the viewport, in pixels (`max(documentWidth, windowWidth)`).
Your callback function will be recalled when the parent page is scrolled or resized.
Pass `false` to disable the callback.
### scrollTo(x,y)
Scroll the parent page to the coordinates x and y.
### scrollToOffset(x,y)
Scroll the parent page to the coordinates x and y relative to the position of the iFrame.
### sendMessage(message,[targetOrigin])
Send data to the containing page, `message` can be any data type that can be serialized into JSON. The `targetOrigin` option is used to restrict where the message is sent to; to stop an attacker mimicking your parent page. See the MDN documentation on [postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage) for more details.
### setHeightCalculationMethod(heightCalculationMethod)
Change the method use to workout the height of the iFrame.
### size ([customHeight],[ customWidth])
Manually force iFrame to resize. This method optionally accepts two arguments: **customHeight** & **customWidth**. To use them you need first to disable the `autoResize` option to prevent auto resizing and enable the `sizeWidth` option if you wish to set the width.
```js
iFrameResize({
autoResize: false,
sizeWidth: true
})
```
Then you can call the `size` method with dimensions:
```js
if ('parentIFrame' in window) {
parentIFrame.size(100); // Set height to 100px
}
```