sciter 自定义弹窗带阻塞功能

主界面tis操作:

注意:程序运行的不能使用这个弹窗要重新生成弹窗。他会阻塞程序运行从而程序崩溃。

封装函数:

function MsgBoxOneButton(TipsText)
{
  var initialData = {
    name: TipsText
  };
    var r =
    
    


        


    
     
       
    

    (initialData);
    
    stdout.println("返回的东西 r= "+r);
    return r;
}
function MsgBoxTwoButton(TipsText)
{
     var initialData = {
     name:TipsText
  };
    var RUE=    
        

            


        
    
       
       
    

     
(initialData);
      stdout.println("返回的东西 RUE= "+RUE);
      return RUE;
}

$(#Page1Cancel).onClick = function() {

    var r = MsgBoxOneButton("Hello world!");调用
    stdout.println("返回的东西 r= "+r);
    
    var Two = MsgBoxTwoButton(" Hello world!\
       1231321321321\
       sadfasdfsad\
       1vcsda6v1sd65\
       csdafsdafsd");
    stdout.println("返回的东西 Two= "+Two);
}

封装弹窗函数:

function MsgBox(atts,kids) {
stdout.println("消息参数1 atts = "+atts);
stdout.println("消息参数2 atts = "+kids);
  var vcontent;
  var vbuttons;
  if( !kids.length ) {
    vcontent = "{Nothing?}";
    vbuttons = ;
  }
  else if( kids.last.tag == #buttons ) { // we've got explicit
    vcontent = kids.splice(0,kids.length - 1);
    vbuttons = kids[0][1]; // content of ...
  } else {
    vcontent = kids;
    vbuttons = ;
  }

  const params = {
    vcontent: vcontent,
    vbuttons: vbuttons,
    type: atts,
    caption: atts?.caption ?? "Sciter"
  };
  // we will pass atts as they are to view.dialog{} + url + parameters
  const dialogDef = (atts || {}).extend {
    url: $url(msgbox.htm),  //新建窗口
    parameters: params
  };

  if(!dialogDef.alignment)
    dialogDef.alignment = -5; // in the middle of parent view  弹出位置
  return function(formData = {}) {
    // show modal dialog:
    params.extend { vdata: formData };
    var r = view.dialog(dialogDef);
    return !r || r == #cancel ? false : r;
  }

}

新弹窗Html:


   
        Sciter1111