有些时候我们需要动态的给某个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 {
width: 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>

go语言使用go-sciter创建桌面应用(五) 加载元素资源的更多相关文章

  1. js动态创建的select2标签样式加载不上解决办法

    js动态创建的select2标签样式加载不上:调用select2的select2()函数来初始化一下: js抛出了Uncaught query function not defined for Sel ...

  2. DLL动态库的创建,隐式加载和显式加载

    动态库的创建 打开VS,创建如下控制台工程,工程命名为DllTest: 在弹出的对话框中选择"DLL"后单击"完成"按钮: 在工程中新建DllTest.h和Dl ...

  3. Swift微博项目--Swift中通过类名字符串创建类以及动态加载控制器的实现

    Swift中用类名字符串创建类(用到了命名空间) OC中可以直接通过类名的字符串转换成对应的类来操作,但是Swift中必须用到命名空间,也就是说Swift中通过字符串获取类的方式为NSClassFro ...

  4. Android Handler 异步消息处理机制的妙用 创建强大的图片加载类(转)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 最近创建了一个群,方便大家交流,群号: ...

  5. React(九)create-react-app创建项目 + 按需加载Ant Design

    (1)create-react-app如何创建项目我前面第一章介绍过了,这里就不过多写了, (2)我们主要来说说按需加载的问题 1. 引入antd npm install antd --save 2. ...

  6. 从整体上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换

    学号后三位<168> 原创作品转载请注明出处https://github.com/mengning/linuxkernel/ 1.分析fork函数对应的内核处理过程sys_clone,理解 ...

  7. 如何用Swift创建一个复杂的加载动画

    现在在苹果应用商店上有超过140万的App,想让你的app事件非常具有挑战的事情.你有这样一个机会,在你的应用的数据完全加载出来之前,你可以通过一个很小的窗口来捕获用户的关注. 没有比这个更好的地方让 ...

  8. ASP.NET MVC - 启动创建项目,未能加载错误

    VS2012以常规方式创建一ASP.NET MVC internet 项目.创建后F5启动项目,遇一错误: 未能加载文件或程序集“MySql.Web.v20, Version=6.9.4.0, Cul ...

  9. 在/etc/docker/下 创建daemon.json重新加载后docker无法启动问题 /etc/docker/daemon.json编辑不了 找不到

    可能产生这个问题的原因至少有以下几个: 编辑daemon.json步骤不对:想要创建并编辑daemon.json,应该是先启动docker服务,此时系统自动产生/etc/docker目录,此时cat生 ...

随机推荐

  1. How to Pronounce Word vs. World

    How to Pronounce Word vs. World Share Tweet Share Tagged With: Comparison, Dark L What is the differ ...

  2. python模块os

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  3. 11.枚举类.md

    目录 1.定义: 2.枚举类和普通类的区别: 2.1枚举类的简单构建: 2.2枚举类的成员变量.方法和构造 2.3实现接口的枚举类 1.定义: 2.枚举类和普通类的区别: 枚举类的默认修饰符是 pub ...

  4. Redis Cluster在线迁移

    由于之前的redis cluster物理硬件性能不足.决定升级到更好的服务器上.考虑到redis是核心生产数据库,决定在线迁移,迁移过程,不中断服务. 下面是测试环境的完成迁移步骤:1. 原环境(测试 ...

  5. CSS 颜色

    color属性可以指定HTML文本的颜色. HTML的颜色采用以下3种方式表示. RGB值 使用红色.绿色.蓝色等不同比例表示,如 1 rgb(100,90,90) 值在0~255之间. 十六进制编码 ...

  6. HTML各种标签复习

    <html>      --开始标签 <head> 网页上的控制信息 <title>页面标题</title> </head> <bod ...

  7. php yii 命令

    php yii 敲回车 This is Yii version 2.0.11. The following commands are available: - asset Allows you to ...

  8. netty 集成 wss 安全链接

    netty集成ssl完整参考指南(含完整源码) 虽然我们在内部rpc通信中使用的是基于认证和报文头加密的方式实现安全性,但是有些时候仍然需要使用SSL加密,可能是因为对接的三方系统需要,也可能是由于o ...

  9. 函数式编程语言(Functional Program Language)

    (一) 什么是函数编程语言 简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论. 是一种编程典范, ...

  10. shell脚本中比较两个小数的办法

    具体情况#man bc 然而对小数进行比较的相关方法有几个: 1. 自己的解决方法,判断小数点后最多有几位数(N),然后对将要比较的两个数值进行 乘与10的N次方 也就是将小数点去掉来进行比较(小数点 ...