crosser

0.1.9 • Public • Published

Crosser npm version

A service for communicating between browser frames.

Life Cycle

  • 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.

Installation

npm install crosser --save

Code Example

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'}
});
 

API Reference

constructor(otherFrameWindow, otherFrameOrigin)

  • arguments:
    • otherFrameWindow [Object]
    • otherFrameOrigin [String]
  • Returns object [Object]

trigger (sessionName, payload)

  • arguments:
    • sessionName [String]
    • payload [Object]
  • Returns promise [Promise]

abort (sessionName)

  • arguments:
    • sessionName [String]

subscribe (sessionName, callback)

  • arguments:
    • sessionName [String]
    • callback [Function]

unsubscribe (sessionName)

  • arguments:
    • sessionName [String]

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i crosser

Weekly Downloads

0

Version

0.1.9

License

MIT

Last publish

Collaborators

  • justtal
  • ramybenaroya