aardio 文档
aardio 范例: Sciter 脚本调用本地函数
//调用 JS 函数
import win.ui;
/*DSG{{*/
var winform = win.form(text="Sciter 脚本调用本地函数";right=1014;bottom=523;parent=...)
winform.add()
/*}}*/
import web.sciter;
var sciter = web.sciter( winform );
//JS 调试输出发送到到控制台,支持 JS 的 console.log()
import web.sciter.debug;
sciter.attachEventHandler( web.sciter.debug );
//在 web.sciter.behavior 名字空间添加自定义 behavior
namespace web.sciter.behavior.button.command {
/*
ltOwner 参数是绑定behavior的节点,
实际上也就是指定了 behavior:command 的节点对象
ltTarget 通常指的是实际触发事件的节点,
或者根据不同的事件,ltTarget的意义有所不同
*/
onButtonClick = function (scTarget,scOwner,reason,behaviorParams) {
//调用节点的成员函数( Javascript函数 )
scOwner.customMethod("在 aardio 中调用节点上定义的JS函数:这是参数")
}
}
sciter.html = /**
<!doctype html>
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
html,body{ height:100%; margin:50; }
#my-button{
behavior:"button.command clickable";
}
</style>
</head>
<body>
<button id="my-button">请点击这里</button> <span id="info"></span>
<script>
document.getElementById("my-button").customMethod = function(str){
document.getElementById("info").innerText = str;
}
// window(或globalThis) 前缀这里可以省略
window.jsFunction = function(param) {
document.getElementById("info").innerText = param;
return param;
}
</script>
</body>
</html>
**/
//访问并操作页面节点
sciter.documentElement.querySelector("#info").insertAdjacentHTML("afterEnd","<br>测试insertAdjacentHTML")
sciter.eval(`
document.getElementById("info").innerText = "通过 sciter.eval 调用 javascript 函数 ";
`)
//参数"jsFunction"也可以写为 "globaThis.jsFunction"
sciter.call("jsFunction", "通过 sciter.call 调用 javascript 函数")
/*
更简单的方法是直接获取 Javascript 函数对象,
在 aardio 中能接收 Javascript 返回值的地方都支持直接返回Javascript 函数对象。
*/
var jsFunction = sciter.eval("jsFunction")
//如果要指定this参数,请使用 jsFunction.xcall(urlOrScriptName,jsThisObject,...)
jsFunction("直接在 aardio 中调用 Javascript 函数对象")
//也可以这样写:
//sciter.script.jsFunction("aardio 调用当前窗口 JavaScript 全局函数")
winform.show()
win.loopMessage();
Markdown 格式