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 {
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创建桌面应用(五) 加载元素资源的更多相关文章
- js动态创建的select2标签样式加载不上解决办法
js动态创建的select2标签样式加载不上:调用select2的select2()函数来初始化一下: js抛出了Uncaught query function not defined for Sel ...
- DLL动态库的创建,隐式加载和显式加载
动态库的创建 打开VS,创建如下控制台工程,工程命名为DllTest: 在弹出的对话框中选择"DLL"后单击"完成"按钮: 在工程中新建DllTest.h和Dl ...
- Swift微博项目--Swift中通过类名字符串创建类以及动态加载控制器的实现
Swift中用类名字符串创建类(用到了命名空间) OC中可以直接通过类名的字符串转换成对应的类来操作,但是Swift中必须用到命名空间,也就是说Swift中通过字符串获取类的方式为NSClassFro ...
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类(转)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 最近创建了一个群,方便大家交流,群号: ...
- React(九)create-react-app创建项目 + 按需加载Ant Design
(1)create-react-app如何创建项目我前面第一章介绍过了,这里就不过多写了, (2)我们主要来说说按需加载的问题 1. 引入antd npm install antd --save 2. ...
- 从整体上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换
学号后三位<168> 原创作品转载请注明出处https://github.com/mengning/linuxkernel/ 1.分析fork函数对应的内核处理过程sys_clone,理解 ...
- 如何用Swift创建一个复杂的加载动画
现在在苹果应用商店上有超过140万的App,想让你的app事件非常具有挑战的事情.你有这样一个机会,在你的应用的数据完全加载出来之前,你可以通过一个很小的窗口来捕获用户的关注. 没有比这个更好的地方让 ...
- ASP.NET MVC - 启动创建项目,未能加载错误
VS2012以常规方式创建一ASP.NET MVC internet 项目.创建后F5启动项目,遇一错误: 未能加载文件或程序集“MySql.Web.v20, Version=6.9.4.0, Cul ...
- 在/etc/docker/下 创建daemon.json重新加载后docker无法启动问题 /etc/docker/daemon.json编辑不了 找不到
可能产生这个问题的原因至少有以下几个: 编辑daemon.json步骤不对:想要创建并编辑daemon.json,应该是先启动docker服务,此时系统自动产生/etc/docker目录,此时cat生 ...
随机推荐
- 焊接关节(Weld Joint)
package{ import Box2D.Common.Math.b2Vec2; import Box2D.Dynamics.b2Body; import Box2D.Dynamics.Joints ...
- webpack打包avalon+mmRouter
这是上一篇<webpack打包avalon+oniui+jquery>的姐妹篇,avalon 的高级应用篇.大家要知道,现在最流行的网页架构就是SPA,SPA能提高用户体验.用户许多数据都 ...
- DNS协议工作过程;DNS的安全隐患
DNS协议工作过程 下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...
- 闹钟AlarmAndMusic 和支持播放音乐效果《IT蓝豹》
闹钟AlarmAndMusic 和支持播放音乐效果的,上下滑动调整时间和页面旋转风车效果,由于制作的gif有些问题,效果不明显,欢迎下载使用看看真实的效果.本例子主要由AlertActivity和Al ...
- linux的一些目录结构
home:家.用户的家. 普通用户的家目录文件在home下 例如:一个用户名为tom的用户,在home下就会存在tom的目录. root:超级管理员root的家 etc:存放配置文件 usr:存放共享 ...
- lcd 控制器
1. 使用lcd 一般需要一个控制器和驱动器,控制器需要初始化以产生正确的时序,驱动器一般是和lcd基板制作在一起. LCD 控制器结构图: REGBANK 表示调色板 LCDDMA 表示DMA通道 ...
- redis异常Redis:java.util.NoSuchElementException: Unable to validate object at
前两天项目上线的时候遇到了redis的一个问题,在测试环境的时候项目运行正常,项目一上线redis便开始抛异常. redis.clients.jedis.exceptions.JedisConnect ...
- Error logged from Ant UI:
2down vote Have a look at the Eclipse error log. I recently saw following error there: Error logged ...
- mongodb突然出现一些特别奇葩的事
mongo突然出现一些奇葩的事,如数据都还在,但某个命令敲下去了.啥东西都没有返回给我们. 往往这个时候特别的郁闷,找不出问题所在. 不用太担心,看看版本,多半是mongo的版本太老了,有些命令已经过 ...
- mui-webview-子页面调用父页面的js方法
子页面// 获取当前webviewvar self = plus.webview.currentWebview();var opener = self.opener();//此句调用父页面jsopen ...