Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/npm-dom/iframe
higher level api for creating and using iframes in browsers
https://github.com/npm-dom/iframe
Last synced: 16 days ago
JSON representation
higher level api for creating and using iframes in browsers
- Host: GitHub
- URL: https://github.com/npm-dom/iframe
- Owner: npm-dom
- Created: 2013-02-04T22:14:29.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-04-09T01:18:24.000Z (over 8 years ago)
- Last Synced: 2024-08-01T02:29:43.239Z (3 months ago)
- Language: JavaScript
- Homepage: http://npm.im/iframe
- Size: 11.7 KB
- Stars: 40
- Watchers: 5
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# iframe
higher level api for creating and removing iframes in browsers
[![browser support](https://ci.testling.com/npm-dom/iframe.png)](https://ci.testling.com/npm-dom/iframe)
[![NPM](https://nodei.co/npm/iframe.png)](https://nodei.co/npm/iframe/)
## usage
use with [browserify](http://browserify.org)
```
npm install iframe
``````javascript
var iframe = require('iframe')// creates a new iframe and appends it to the container
frame = iframe({ container: document.querySelector('#container') , body: "hi" })// completely removes previous iframe from container and generates a new one
frame.setHTML({ body: "bye" })
```## options
you can pass this into the constructor or `setHTML`
```
{
name: name of the iframe,
src: if src url is passed in use that (this mode ignores body/head/html options),
body: string contents for ``
head: string contents for ``
html: string contents for entire iframe
container: (constructor only) dom element to append iframe to, default = document.body
sandboxAttributes: array of capability flag strings, default = ['allow-scripts']
scrollingDisabled: (constructor only) boolean for the iframe scrolling attr
}
```you can also just pass in a string and it will be used as `{html: 'yourstring'}`
### security
by default the sandbox attribute is set with 'allow-scripts' enabled. pass in an array of capability flag strings. [Available flags](http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/):
```
allow-forms allows form submission.
allow-popups allows (shock!) popups.
allow-pointer-lock allows (surprise!) pointer lock.
allow-same-origin allows the document to maintain its origin; pages loaded from https://example.com/ will retain access to that origin’s data.
allow-scripts allows JavaScript execution, and also allows features to trigger automatically (as they’d be trivial to implement via JavaScript).
allow-top-navigation allows the document to break out of the frame by navigating the top-level window.
```## gotchas
iframes are weird. here are some things I use to fix weirdness:
### loading javascript into iframes
```javascript
// setTimeout is because iframes report inaccurate window.innerWidth/innerHeight, even after DOMContentLoaded!
var body = ' setTimeout(function(){' + javascriptCodeHere + '}, 0)'
```### getting rid of dumb iframe default styles
```javascript
var head = " html, body { margin: 0; padding: 0; border: 0; } "
```## license
BSD