elpm

use postMessage like event emitter

Usage no npm install needed!

<script type="module">
  import elpm from 'https://cdn.skypack.dev/elpm';
</script>

README

elpm's help you to use postmessage like event emitter.

Installation

npm install elpm --save

Usage

// http://example.com
import { pmEmitter } from 'elpm'

const targetWindow = window.open('http://example.co.jp')
const emitter = pmEmitter(targetWindow, '*')
emitter
  .emit('greet', { msg: 'Hello, World' })
  .emit('methodChain', { num: 1 })

// http://example.co.jp
import { pmListener } from 'elpm'
const listener = pmListener('http://example.com') // accept 'http://example.com' origin only
const onGreet = (data) => {
  console.log(data.msg) // >> Hello, World
}
listener
  .on('greet', onGreet)
  .on('methodChain', (data) => {
    console.log(data.num) // >> 1
  })


// ============================
listener.off('greet', onGreet) // remove listener
listener.destroy() // remove its own window's 'message' listener. return:void