aardio 文档

aardio 范例: js 调用 aardio 自定义事件

//JS 调用本地函数 
import win.ui;
/*DSG{{*/
var winform = win.form(text="js 调用 aardio 自定义事件";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.customEvent {  

    //behavior 中名称不以 on 开始的函数都是自定义函数
    testJs = function(scOwner,str,jsCallback){ 
        import console
        console.log("behavior里的函数 testJs 被调用了");
        console.log("自定义函数接收到的第一个参数总是节点自身")
        console.log("然后才是其他参数",str)

        //aardio里调用behavior自定义函数的方法是一样的,提供一模一样的xcall函数
        scOwner.xcall("testJs2",str);

        //在 aardio 中能接收 Javascript 返回值的地方都支持直接返回Javascript 函数对象
        jsCallback("在 aardio 中能接收 Javascript 返回值的地方都支持直接返回Javascript 函数对象")
    }

    testJs2 = function(scOwner,...){
        console.log("behavior里的函数 testJs2 被调用了",...)
        console.log("自定义函数接收到的第一个参数总是节点自身")
        console.log(scOwner.outerHTML)
    }

    //JS 脚本中读取 value 时触发此回调,第2个返回值返回 value 的值
    onGetValue = function( ltOwner ){
        return true,"Value:onGetValue";
    }

    //JS 脚本中使用修改 value 值时触发此回调
    onSetValue = function(  ltOwner,value ){

        return true
    }
}

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:"customEvent clickable"; 
    }
    </style>
</head>
<body> 
<button id="my-button">调用 behavior 定义的 aardio函数:testJs </button> 
<br> 请务必更新 web.sciter 扩展库到最新版本

<script>

var button = document.getElementById("my-button");
button.addEventListener('click', () => { 

    // 调用 aardio 函数, 请务必更新 web.sciter 扩展库到最新版本
    button.xcall("testJs", "hello",function jsCallback(argA){
        console.log("在aardio中调用了 Javascript 回调函数",argA)
    }); 
})

</script>
</body>
</html>
**/

winform.show(); 
win.loopMessage();

Markdown 格式