aardio 文档

aardio 范例:事件

//事件
import win.ui;
/*DSG{{*/
var winform = win.form(text="CDP 事件";right=818;bottom=507)
winform.add()
/*}}*/

import web.view; 
var wb = web.view(winform);
winform.show();

//允许监听网络事件
wb.cdp("Network.enable");

//订阅 CDP 事件
wb.cdpSubscribe("Network.requestWillBeSent",function(cdpResult){
    winform.text = cdpResult.documentURL; 

    //CDP 事件应尽快退出,
    //如果返回函数,该函数将在 CDP 事件退出以后异步执行。
    return function(){
        //阻塞耗时操作适合放到这里。  
    } 
})

import crypt;
import console;

//订阅 CDP 事件
wb.cdpSubscribe("Network.responseReceived",function(cdpResult){

    //CDP 事件内部不要阻塞调用其他 CDP 命令。
    wb.cdp("Network.getResponseBody",
        {requestId = cdpResult.requestId},

        //使用回调函数异步调用其他 CDP 命令
        function(result,err){
            if(!result){ 
                console.log("出错了:",lasterr(err) ) 
                return;
            }

            if(result.base64Encoded){
                //result.body = crypt.decodeBin(result.body); 
            }
            else { 
                console.dump(result.body);
            } 
        }
    ) 
} ) 


wb.go("https://www.aardio.com");
win.loopMessage();

Markdown 格式