A service for communicating between browser frames.
- One of the frames triggers a session which the other frame can subscribe to by name via a callback.
- Once the subscriber's callback is called, its return value will be resolved within the initiator frame and the session will end.
Although the session has ended, the subscriber will be called next time when a new session with the same name will be initialized.
npm install crosser --save
or
bower install crosser --save
Frame 1
var Crosser = require('crosser');
// Instantiation
var crosser = new Crosser(frame2.contentWindow, 'http://frame2.origin.com');
// Start a session
crosser.trigger('session-name', {message: 'message from frame1'})
.then(function(payloadFromFrame2){
alert(payloadFromFrame2.message) // 'message from frame2'
});
Frame 2
var Crosser = require('crosser');
// Instantiation
var crosser = new Crosser(frame1.contentWindow, 'http://frame1.origin.com');
// Subscribe to a session
crosser.subscribe('session-name', function(payloadFromFrame1){
alert(payloadFromFrame1.message); // 'message from frame1'
return {message: 'message from frame2'}
});
####constructor(otherFrameWindow, otherFrameOrigin)
- arguments:
- otherFrameWindow [
Object
] - otherFrameOrigin [
String
]
- otherFrameWindow [
- Returns
object [
Object
]
####trigger (sessionName, payload)
- arguments:
- sessionName [
String
] - payload [
Object
]
- sessionName [
- Returns
promise [
Promise
]
####triggerEvent (eventName, payload)
- arguments:
- eventName [
String
] - payload [
Object
]
- eventName [
- Returns
undefined
####abort (sessionName)
- arguments:
- sessionName [
String
]
- sessionName [
####subscribe (sessionName, callback)
- arguments:
- sessionName [
String
] - callback [
Function
]
- sessionName [
####unsubscribe (sessionName)
- arguments:
- sessionName [
String
]
- sessionName [
####subscribeEvent (eventName, callback)
- arguments:
- eventName [
String
] - callback [
Function
]
- eventName [
####unsubscribe (eventName)
- arguments:
- eventName [
String
]
- eventName [