ww-postmessage

传值封装

Usage no npm install needed!

<script type="module">
  import wwPostmessage from 'https://cdn.skypack.dev/ww-postmessage';
</script>

README

简介

基于postMessage封装跨页面、跨域通讯机制。返回class WwPostMessage;

方法

生成实例

let wwPostMesssage = new WwPostMessage()

发送消息。参数object包含key、data字段;

type 用于区分通讯,type尽量详细(page-module-fun)避免误触。 data 用于传递

wwPostMessage.send({type,data})

限制:内部将对object进行字符串处理。

转换值如果有toJSON()方法,该方法定义什么值将被序列化。 非数组对象的属性不能保证以特定的顺序出现在序列化后的字符串中。 布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值。 undefined、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。函数、undefined被单独转换时,会返回undefined,如JSON.stringify(function(){}) or JSON.stringify(undefined). 对包含循环引用的对象(对象之间相互引用,形成无限循环)执行此方法,会抛出错误。 所有以 symbol 为属性键的属性都会被完全忽略掉,即便 replacer 参数中强制指定包含了它们。 Date日期调用了toJSON()将其转换为了string字符串(同Date.toISOString()),因此会被当做字符串处理。 NaN和Infinity格式的数值及null都会被当做null。 其他类型的对象,包括Map/Set/weakMap/weakSet,仅会序列化可枚举的属性。

设置监听

function ListenterA ({type,data}){
  switch (type) {
    case '':
      break;
    default:
      break;
  }
}
wwPostMessage.addListener(listenerA)