Lightweight wrapper around window.open() that adds Promise and postMessage support
npm install promise-windowpromise-window
==============
Lightweight wrapper around window.open() that adds Promise and postMessage support







Installation
------------
bower install promise-window --save-dev
npm install promise-window --save-dev
Grab a copy of promise-window
(development version).
Usage
-----
The simplest way to use PromiseWindow is to use the PromiseWindow.open
convenience method:
``javascript
/**
* index.html
*/
PromiseWindow.open('http://popup.html').then(
// Success
function(data) {
// data.result == 'awesome' (1)
},
// Error
function(error) {
switch(error) {
case 'closed':
// window has been closed
break;
case 'my-custom-message':
// 'my-custom-message' postMessage has been sent from target URL (2)
break;
}
}
);
`
`javascript
/**
* popup.html
*/
// report succees
opener.postMessage({ result: 'awesome' }, location.origin); // (1)
// report error
opener.postMessage({ error: 'my-custom-message' }, location.origin); // (2)
`
Instantiating the PromiseWindow prototype gives you more control. The
following example shows how to close the window after 30 seconds.
`javascript
var promiseWindow = new PromiseWindow('http://popup.html'),
timeout = window.setTimeout(function() {
promiseWindow.close();
}, 30000);
promiseWindow.open().then(
function(data) {
window.clearTimeout(timeout);
// ... (success)
},
function(error) {
window.clearTimeout(timeout);
// ... (error)
}
);
`
See API Documentation
for more information about the PromiseWindow` prototype.
Authors
-------
Versioning
----------
This library follows Semantic Versioning
Want to help?
-------
Please do! We are always looking to improve this component. Please see our
Contribution Guidelines
on how to properly submit issues and pull requests.
Legal
-----
Alex Mercier © 2015