xctc-utils 1.6.37 → 1.6.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,6 +25,38 @@ all:boolean 为true时删除调用方法的所有缓存,否则只删除当前
25
25
  删除永久缓存: useUtils.removeLocalStorage(key,all)
26
26
  ```
27
27
 
28
+ ### iframe
29
+ #### 父级页面方法调用
30
+
31
+ ```
32
+ id string iframe子页面对应的id属性
33
+ keys string 微信分享链接携带的state本地缓存值,非必传
34
+ useUtils.iframe.initParentDataToIframe(id:string,keys?:string)
35
+ ```
36
+ ##### 父级页面获取到子页面触发的数据
37
+ ```
38
+ cb回调函数,返回子页面传递的数据
39
+ useUtils.iframe.updateIframeReceiveData( cb:any )
40
+ ```
41
+ ##### 父页面发送数据到 子页面
42
+ ```
43
+ id iframe子页面对应的id属性
44
+ data 传递的数据,函数内对data进行序列化处理
45
+ useUtils.iframe.sendParentMessage( id:string,data:any )
46
+ ```
47
+ #### 子页面方法调用
48
+ ##### 子页面获取到 主页面 传递的数据
49
+ ```
50
+ cb回调函数,返回父页面传递的数据
51
+ useUtils.iframe.updateParentReceiveData(cb)
52
+ ```
53
+ ##### 子页面 发送数据到 主页面
54
+ ```
55
+ data 发送的数据
56
+ url 父页面地址
57
+ useUtils.iframe.sendIframeParentData(data:any,url:string)
58
+ ```
59
+
28
60
  ### 地址栏参数处理
29
61
  #### 设置参数
30
62
  ```
@@ -1,4 +1,10 @@
1
1
  export declare const $iframe: (id: string) => any;
2
+ /**
3
+ *
4
+ * @param id
5
+ * @param keys
6
+ * @returns
7
+ */
2
8
  export declare const initParentDataToIframe: (id: string, keys?: string) => void;
3
9
  /**
4
10
  * 主应用 获取到 子应用Iframe传递的数据
@@ -27,6 +27,12 @@ var $iframe = function (id) {
27
27
  };
28
28
  exports.$iframe = $iframe;
29
29
  // 主应用内初始化iframe子应用,并传递对应的参数到子应用
30
+ /**
31
+ *
32
+ * @param id
33
+ * @param keys
34
+ * @returns
35
+ */
30
36
  var initParentDataToIframe = function (id, keys) {
31
37
  var _a;
32
38
  if (!id) {
@@ -68,6 +74,7 @@ exports.updateIframeReceiveData = updateIframeReceiveData;
68
74
  * @param cb
69
75
  */
70
76
  var updateParentReceiveData = function (cb) {
77
+ var win = window;
71
78
  win.addEventListener('message', function (event) {
72
79
  var data = event.data;
73
80
  var mainData = (0, utils_1.isJson)(data);
@@ -118,7 +125,15 @@ var sendParentMessage = function (id, data) {
118
125
  }
119
126
  var iframe = (0, exports.$iframe)(id);
120
127
  if (iframe) {
121
- iframe.contentWindow.postMessage(JSON.stringify(data), iframe.src);
128
+ if ((0, is_1.isObject)(data)) {
129
+ iframe.addEventListener('load', function () {
130
+ // iFrame加载完成后的操作
131
+ iframe.contentWindow.postMessage(JSON.stringify(data), iframe.src);
132
+ });
133
+ }
134
+ else {
135
+ console.error("传递的数据仅支持对象格式!");
136
+ }
122
137
  }
123
138
  else {
124
139
  console.error("未查询到iframe标签,请检查id属性值是否正确!");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xctc-utils",
3
- "version": "1.6.37",
3
+ "version": "1.6.39",
4
4
  "description": "localStorage存储\r ```\r sessionStorage存储\r ```\r crypto-js加密、解密\r ```\r 微信授权登录、微信分享\r ```\r 设备环境获取\r ```\r 是否是微信浏览器\r ```\r 时间戳转时间,字符串转时间戳",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",