zoukankan      html  css  js  c++  java
  • go语言使用go-sciter创建桌面应用(五) 加载元素资源

    有些时候我们需要动态的给某个UI元素加载内容或数据。

    demo6.go代码如下:

    package main;
    
    import (
    	"github.com/sciter-sdk/go-sciter/window"
    	"github.com/sciter-sdk/go-sciter"
    	"log"
    	"fmt"
    )
    
    func load(root *sciter.Element) {
    	frame, _ := root.SelectById("frame");
    	//load()类似jquery.load(),用于给元素加载指定内容
    	//加载html内容
    	frame.Load("http://www.qq.com", sciter.RT_DATA_HTML);
    
    	txt, _ := root.SelectById("txt");
    	//附加元素事件处理
    	txt.AttachEventHandler(&sciter.EventHandler{
    		//OnDataArrived 当资源被加载但未使用时调用
    		//返回true,取消资源使用
    		//返回false,遵循正常过程
    		OnDataArrived: func(he *sciter.Element, params *sciter.DataArrivedParams) bool {
    			//设置元素html
    			he.SetHtml(string(params.Data()), sciter.SIH_REPLACE_CONTENT);
    			return false;
    		},
    	});
    	//加载本地原始数据
    	txt.Load("file:///D:/gopath/src/gui/1.txt", sciter.RT_DATA_RAW);
    
    	img, _ := root.SelectById("img");
    	img.AttachEventHandler(&sciter.EventHandler{
    		//OnDataArrived 当资源被加载但未使用时调用
    		OnDataArrived: func(he *sciter.Element, params *sciter.DataArrivedParams) bool {
    			//设置属性,给img标签设置src
    			he.SetAttr("src", params.Uri());
    			return false;
    		},
    	});
    	img.Load("http://mat1.gtimg.com/www/images/qq2012/qqLogoFilter.png", sciter.RT_DATA_IMAGE);
    
    	script, _ := root.SelectById("script");
    	script.AttachEventHandler(&sciter.EventHandler{
    		//OnDataArrived 当资源被加载但未使用时调用
    		OnDataArrived: func(he *sciter.Element, params *sciter.DataArrivedParams) bool {
    			fmt.Println(string(params.Data()));
    			return false;
    		},
    	});
    	//加载脚本资源
    	script.Load("http://apps.bdimg.com/libs/jquery/1.8.3/jquery.min.js", sciter.RT_DATA_SCRIPT);
    }
    
    func main() {
    	w, err := window.New(sciter.DefaultWindowCreateFlag, sciter.DefaultRect);
    	if err != nil {
    		log.Fatal(err);
    	}
    	//加载文件
    	w.LoadFile("demo6.html");
    	//设置标题
    	w.SetTitle("元素加载内容");
    	//获取根元素
    	root, _ := w.GetRootElement();
    	//元素加载资源
    	load(root);
    	w.Show();
    	w.Run();
    }
    

    demo6.html代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>元素加载内容</title>
        <style>
            #frame {
                 100%;
                height: 50%;
            }
    
            #txt {
                border: 1px solid #ccc;
                height: 50px;
                color: #000;
            }
        </style>
    </head>
    <body>
    <iframe id="frame">
    
    </iframe>
    
    <div id="txt"></div>
    
    <img id="img">
    
    <script type="text/javascript" id="script"></script>
    </body>
    </html>
    

  • 相关阅读:
    Java中的静态方法
    捕获异常代码
    重载与重写的区别
    继承代码
    Android Studio 快捷键一览
    android两种基本联网方式与一种第三方开源项目的使用
    Android Studio导入github下载的project和module
    SlidingMenu 侧滑菜单的用法
    显示图片的(自定义)吐司Toast
    用volley在Genymotion上获取网页源码
  • 原文地址:https://www.cnblogs.com/jkko123/p/7053998.html
Copyright © 2011-2022 走看看