帖子
帖子
用户
博客
课程
显示全部楼层
1
帖子
0
勋章
974
Y币

[YonStudio] api.closeWin 怎么触发上一个页面apiready()

[复制链接]
发表于 2022-11-14 10:01:53
api.closeWin 怎么触发上一个页面apiready()
  1. 公用方法:

  2. /**
  3. * 执行脚本
  4. * @param {*} params 脚本参数
  5. * @param {*} type 脚本类型
  6. * @param {*} func 脚本方法
  7. */
  8. function execScript( params, type, func) {

  9.     if (!arguments[0]) params = {};
  10.     if (!arguments[1]) type = 'all'; //all win frm wintofrm
  11.     if (!arguments[2]) func = "getReloadData()";

  12.     switch (type) {
  13.         case "win":
  14.             api.execScript({
  15.                 name: params.winName,
  16.                 script: func
  17.             });
  18.             break;
  19.         case "frm":
  20.             api.execScript({
  21.                 frameName: params.frmName,
  22.                 script: func
  23.             });
  24.             break;
  25.         case "wintofrm":
  26.             api.execScript({
  27.                 name: params.winName,
  28.                 frameName: params.frmName,
  29.                 script: func
  30.             });
  31.             break;
  32.         default:
  33.             api.execScript({
  34.                 script: func
  35.             });
  36.             break;
  37.     }
  38. }


  39. /**
  40. * 打开页面
  41. * @param {*} params 打开页面的主要参数 name url pageParam
  42. * @param {*} type win frm
  43. * @param {*} islogin  是否验证登录
  44. */
  45. function openPage(params, type, islogin) {
  46.     if (!arguments[0]) params = {
  47.         name: '',
  48.         url: '',
  49.         params: {}
  50.     };
  51.     if (params.url.length <= 0) return;
  52.     if (!arguments[1]) type = "win";
  53.     if (!arguments[2]) islogin = 0; //自行处理参数

  54.     //获取当前页面的参数
  55.     var pageType = api.frameName ? 'frm' : 'win';
  56.     var pageName = api.frameName ? api.frameName : api.winName;
  57.     var beforePageParams = {
  58.         pageType:pageType,
  59.         pageName:pageName
  60.     }
  61.     params.beforePageParams = beforePageParams;

  62.    
  63.     if (type == 'win') {
  64.         api.openWin({
  65.             name: params.name,
  66.             url: params.url,
  67.             pageParam: params.params,
  68.             bounces: false,
  69.             allowEdit: true,
  70.         });

  71.     } else {
  72.         api.openFrame({
  73.             name: params.name,
  74.             url: params.url,
  75.             pageParam: params.params,
  76.             animation: {
  77.                 type: "movein", //动画类型(详见动画类型常量)
  78.                 subType: "from_right", //动画子类型(详见动画子类型常量)
  79.                 duration: 300
  80.             },
  81.             bounces: false,
  82.             allowEdit: true,
  83.         });
  84.     }
  85. }


  86. /**
  87. * 关闭页面
  88. */
  89. function closePage(isReload) {
  90.     if (!arguments[0]) isReload = false;
  91.     if(isReload){
  92.         var beforePageParams = api.pageParam.beforePageParams;
  93.         var pageName = beforePageParams.pageName;
  94.         var pageType = beforePageParams.pageType;

  95.         var params = {
  96.             winName: (pageType == 'win') ? pageName : '',
  97.             frmName: (pageType == 'frm') ? pageName : ''
  98.         };
  99.         execScript( params, pageType);
  100.     }
  101.     setTimeout(fcuntion (){
  102.         var pageName = api.frameName ? api.frameName : api.winName;
  103.         if (pageOpenType == "win") {
  104.             api.closeWin({
  105.                 name: pageName
  106.             });
  107.         } else {
  108.             api.closeFrame({
  109.                 name: pageName
  110.             });
  111.         }
  112.     },300)
  113. }



  114. 页面A:
  115. apiready = function() {

  116.     //初始化数据
  117.     getReloadData();
  118. }

  119. function getReloadData(){
  120.     getLoadData()
  121. }

  122. function getLoadData(){

  123. }

  124. 页面B:


  125. apiready = function() {

  126.     //初始化数据
  127.     getReloadData();
  128. }

  129. function getReloadData(){
  130.     getLoadData()
  131. }

  132. function closeCurrPage(){

  133.     closePage(true);
  134. }



复制代码
关闭页面之前  api.sendEvent  发监听回去刷新
您需要登录后才可以回帖 登录

本版积分规则