promise-window
v1.2.1
Published
Lightweight wrapper around window.open() that adds Promise and postMessage support
Downloads
22,129
Maintainers
Readme
promise-window
Lightweight wrapper around window.open() that adds Promise and postMessage support
Installation
Bower (recommended)
bower install promise-window --save-dev
NPM
npm install promise-window --save-dev
Manuall installation
Grab a copy of promise-window (development version).
Usage
The simplest way to use PromiseWindow is to use the PromiseWindow.open
convenience method:
/**
* 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;
}
}
);
/**
* popup.html
*/
// report succees
opener.postMessage({ result: 'awesome' }, location.origin); // (1)
// report error
opener.postMessage({ error: 'my-custom-message' }, location.origin); // (2)
Advanced usage
Instantiating the PromiseWindow
prototype gives you more control. The
following example shows how to close the window after 30 seconds.
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