主界面tis操作:
注意:程序运行的不能使用这个弹窗要重新生成弹窗。他会阻塞程序运行从而程序崩溃。
封装函数:
function MsgBoxOneButton(TipsText)
{
var initialData = {
name: TipsText
};
var r =
<MsgBox >
<form>
<p|text(name) .tips-text></p>
</form>
<buttons>
<button id="ok" .ok-button .button-cancel2-left role="default-button">OK</button>
</buttons>
</MsgBox>(initialData);
stdout.println("返回的东西 r= "+r);
return r;
}
function MsgBoxTwoButton(TipsText)
{
var initialData = {
name:TipsText
};
var RUE= <MsgBox>
<form>
<p|text(name) .tips-text></p>
</form>
<buttons>
<button id="cancel" .button-cancel2 .button-cancel2-left role="cancel-button">Cancel</button>
<button id="ok" .ok-button role="default-button">OK</button>
</buttons>
</MsgBox> (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 = <button id="ok" .ok-button role="default-button" >OK333</button>;
}
else if( kids.last.tag == #buttons ) { // we've got explicit <buttons>
vcontent = kids.splice(0,kids.length - 1);
vbuttons = kids[0][1]; // content of <buttons>...</buttons>
} else {
vcontent = kids;
vbuttons = <button id="ok" role="default-button" >OK222</button>;
}
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:
<html window-frame="solid" style="height:auto;width:auto;">
<head>
<title>Sciter1111</title>
<style src="css\index.css" />
</head>
<script type="text/tiscript">
//debug log: view.parameters;
const {vcontent,vbuttons,vdata,type,caption} = view.parameters;
stdout.println("文本传输 vcontent= "+vcontent);
stdout.println("文本传输 vbuttons= "+vbuttons);
stdout.println("文本传输 vdata= "+vdata);
stdout.println("文本传输 type= "+type);
stdout.println("文本传输 caption= "+caption);
//debug log:vcontent,vbuttons,vdata;
const main = $(main#content);
main.content(vcontent);
$(footer#button-bar).content(vbuttons);
const form = main.$(form);
if(form) {
main.attributes["has-form"] = true;
form.value = vdata;
}
event ~click $([href]) {
var href = this.attributes["href"];
Sciter.launch(href);
return true;
}
//按钮返回值
event click $(footer button) (evt,button) {
if( var bid = button.attributes["id"] ) {
if( bid == "ok" && form) {
view.close(form.value);
return true;
}
view.close(symbol(bid));
return true;
}
}
//窗口界面大小
function setupMins() {
const body = $(body);
var w = body.intrinsicWidthMax();
var h = body.intrinsicHeight(w);
//debug log: w,h;
view.windowMinSize = (w,h);
}
//界面设置函数
function self.ready() {
view.windowCaption = caption || type;
}
view << event statechange { setupMins(); }
view << event resolutionchange { setupMins(); }
</script>
<body .tips >
<div .tips-top .flow role="window-caption">
<text>Tips</text>
<button #CloseCaption role="window-close" .cloes-button></button>
</div>
<main #content .main-tips></main>
<footer #button-bar></footer>
</body>
</html>
原始路径:samples\+reactor\components\msgbox