iframe-mitt
- 可靠性:避免父级 window 向 iframe 发送的 message 丢失
- 实用:无需自己监听 message 事件,维护消息队列
- 用法:利用 mitt 的事件分发机制,接口简洁
安装
$ npm install iframe-mitt --saveor$ yarn add iframe-mitt
引用方式:
// ES6 模块引用 // CommonJS 模块引用var IframeMitt =
使用
iframe 父级页面调用:
; // iframe 加载之前的前置初始化IframeMittparent; // 可以在任意时刻触发事件(比如::iframe 初始化之前),无需担心 message 丢失问题IframeMittparent; // 监听 iframe 的 messageIframeMittparent; // 使用处理函数引用 {}IframeMittparent // 监听IframeMittparent // 注销
iframe 内部调用:
; // 前置初始化IframeMittchild; IframeMittchild; IframeMittchild; IframeMittchild;
API
on
注册 message 事件的处理函数
参数
type
: String 类型,事件名称,"*"
表示所有事件handler
: Function 类型,响应事件的处理函数,该函数的 event 参数的属性如下,具体参考Window.postMessage:- data: 从其他 window 传递过来的对象
- orgin: 调用 postMessage 时消息发送方窗口的 origin . 这个字符串由 协议、“://“、域名、“ : 端口号”拼接而成。
- source: 对发送消息的窗口对象的引用;
off
移除 message 事件的处理函数
参数
type
: String 类型,事件名称,"*"
表示所有事件handler
: Function 类型,要移除的处理函数
emit
调用该事件的所有处理函数,"*"
的处理函数在具体事件的处理函数之后调用
参数
type
: String 类型,事件名称event
: Object 类型,包含三个参数:{ message, targetOrigin, transfer }
,与 postMessage 参数含义一致,具体含义可以参考Window.postMessage