sciter-sdk / go-sciter

Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development
https://sciter.com
2.57k stars 268 forks source link

Demonstrate 04 code button 1 will cause a crash How to fix it? #242

Closed Aquarian-Age closed 4 years ago

Aquarian-Age commented 4 years ago

https://github.com/sciter-sdk/go-sciter/blob/master/examples/demoes/04/demo4.go


~/nfs_share/golang/sciter/demoes/04
liangzi@xuan 2 19:06 >./demo4 
Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 key我是tis中为btn2定义的方法test2 "1" "2" "3"
30
150
2020/07/23 19:06:25 Unhandled sciter event case: 32768
panic: Unhandled sciter event case: 32768

goroutine 1 [running]:
log.Panic(0xc00004dcf0, 0x2, 0x2)
        /usr/local/go/src/log/log.go:351 +0xac
github.com/sciter-sdk/go-sciter.goElementEventProc(0x1, 0x0, 0x8000, 0x7fff488c11d0, 0x28)
        /home/xuan/go_work/pkg/mod/github.com/sciter-sdk/go-sciter@v0.5.0/sciter.go:1468 +0x2f9
github.com/sciter-sdk/go-sciter._cgoexpwrap_dd939bdb4f3d_goElementEventProc(0x1, 0x0, 0x8000, 0x7fff488c11d0, 0x0)
        _cgo_gotypes.go:2063 +0x49
github.com/sciter-sdk/go-sciter/window._Cfunc_gtk_main()
        _cgo_gotypes.go:191 +0x41
github.com/sciter-sdk/go-sciter/window.(*Window).Run(...)
        /home/xuan/go_work/pkg/mod/github.com/sciter-sdk/go-sciter@v0.5.0/window/window_linux.go:60
main.main()
        /home/xuan/nfs_share/golang/sciter/demoes/04/demo4.go:108 +0x131
    btn1, _ := root.SelectById("btn1")
    //处理元素简单点击事件
    btn1.OnClick(func() {
        fmt.Println("btn1被点击了")
    })

    //这里给元素定义的方法是在tiscript中进行调用的
    //并且作为元素的属性进行访问
    btn1.DefineMethod("test", func(args ...*sciter.Value) *sciter.Value {
        //我们把从传入的参数打印出来
        for _, arg := range args {
            //String()把参数转换成字符串
            fmt.Print(arg.String() + " ")
        }

        //返回一个空值
        return sciter.NullValue()
    })
        //view是一个全局的视图对象,root是加载的根元素
        var root = view.root;

        //通过self.$()方法选择元素,类似jquery的$
        //self.$()这里面参数不要加双引号
        //我们调用在go中为btn1定义的方法
        $(#btn1).on("click", function() {
            //this指向的当前元素
            this.test("参数1", "参数2", "参数3");
        });

This is a BUG of version 4.4.3.28

tkzl commented 4 years ago

me too! `2020/08/03 16:33:34 Unhandled sciter event case: 32768 panic: Unhandled sciter event case: 32768

goroutine 1 [running]: log.Panic(0xc00011bb30, 0x2, 0x2) c:/go/src/log/log.go:351 +0xc2 github.com/sciter-sdk/go-sciter.goElementEventProc(0x2, 0x0, 0x8000, 0x194f5c0, 0x0) C:/Users/Administrator/go/pkg/mod/github.com/sciter-sdk/go-sciter@v0.5.0/sciter.go:1468 +0x441 github.com/sciter-sdk/go-sciter._cgoexpwrap_29ac64e236ed_goElementEventProc(0x2, 0x0, 0x8000, 0x194f5c0, 0x0) _cgo_gotypes.go:2000 +0x59 syscall.Syscall(0x7ffd34a744c0, 0x2, 0x11076e, 0x5, 0x0, 0x0, 0x0, 0x0) c:/go/src/runtime/syscall_windows.go:188 +0xbc github.com/lxn/win.ShowWindow(0x11076e, 0x5, 0xc35700) C:/Users/Administrator/go/pkg/mod/github.com/lxn/win@v0.0.0-20191128105842-2da648fda5b4/user32.go:3273 +0x76 github.com/sciter-sdk/go-sciter/window.(*Window).Show(0xc00010ae20) C:/Users/Administrator/go/pkg/mod/github.com/sciter-sdk/go-sciter@v0.5.0/window/window_windows.go:42 +0x61 main.main() h:/go/windows/main.go:66 +0x45d could not remove h:\go\windows__debug_bin: remove h:\go\windows__debug_bin: The process cannot access the file because it is being used by another process. Process exiting with code: 0`

golang code // func logout(w window.Window, root sciter.Element) { w.DefineFunction("test", func(args ...sciter.Value) sciter.Value { fmt.Println(args) fmt.Println("test") return sciter.NewValue(123) }) }

html code // $(#logout).on("click",function(){ var obj = {num:100, str:"Hello World"}; view.msgbox(#question,"logout?","logout",[ {id:#yes, text:"yes"}, {id:#no, text:"no"} ],function(root){ },function(root,id){ $(.menu-child).style["display"]="none"; if(id=="yes"){ $(#allnum).text(function(e){ view.test("test") }) } }); });

github.com/sciter-sdk/go-sciter v0.5.0 sciter-sdk v4.4.3.28 window 10 v2004 gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

pravic commented 4 years ago

Was fixed already. See #239.