Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
35cb9637
energy
项目概览
energye
/
energy
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
energy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
35cb9637
编写于
10月 10, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
U: demo chromium模拟事件
上级
01354c9a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
35 addition
and
10 deletion
+35
-10
example/mockevent/mockevent.go
example/mockevent/mockevent.go
+24
-4
example/mockevent/resources/index.html
example/mockevent/resources/index.html
+11
-6
未找到文件。
example/mockevent/mockevent.go
浏览文件 @
35cb9637
...
...
@@ -10,6 +10,7 @@ import (
"github.com/energye/energy/v2/consts"
t
"github.com/energye/energy/v2/types"
lcltypes
"github.com/energye/golcl/lcl/types"
"time"
)
//go:embed resources
...
...
@@ -61,6 +62,7 @@ func main() {
btn3
:=
body
.
GetDocument
()
.
GetElementById
(
"btn3"
)
inpText
:=
body
.
GetDocument
()
.
GetElementById
(
"inpText"
)
inp2Text
:=
body
.
GetDocument
()
.
GetElementById
(
"inp2Text"
)
tare
:=
body
.
GetDocument
()
.
GetElementById
(
"tare"
)
// dom元素Rect集合数据发送到主进程
var
doms
=
make
(
map
[
string
]
cef
.
TCefRect
)
doms
[
"btn1"
]
=
btn1
.
GetElementBounds
()
...
...
@@ -68,6 +70,7 @@ func main() {
doms
[
"btn3"
]
=
btn3
.
GetElementBounds
()
doms
[
"inpText"
]
=
inpText
.
GetElementBounds
()
doms
[
"inp2Text"
]
=
inp2Text
.
GetElementBounds
()
doms
[
"tare"
]
=
tare
.
GetElementBounds
()
// 触发主进程ipc监听事件
ipc
.
EmitTarget
(
"renderLoadEnd"
,
target
.
NewTargetMain
(),
browserId
,
channelId
,
doms
)
})
...
...
@@ -85,7 +88,7 @@ func main() {
var
domXYCenter
=
func
(
bound
cef
.
TCefRect
)
(
int32
,
int32
)
{
return
bound
.
X
+
bound
.
Width
/
2
,
bound
.
Y
+
bound
.
Height
/
2
}
// 模拟
按钮
点击事件
// 模拟
button
点击事件
var
buttonClickEvent
=
func
(
domRect
cef
.
TCefRect
)
{
window
.
RunOnMainThread
(
func
()
{
//在UI主线程执行
chromium
:=
window
.
Chromium
()
...
...
@@ -102,9 +105,9 @@ func main() {
chromium
.
SendMouseClickEvent
(
me
,
consts
.
MBT_LEFT
,
true
,
1
)
})
}
// 模拟
文本
输入
// 模拟
input
输入
var
inputTextEvent
=
func
(
value
string
,
domRect
cef
.
TCefRect
)
{
//
文本框区域
点击, 获取焦点
// 点击, 获取焦点
buttonClickEvent
(
domRect
)
window
.
RunOnMainThread
(
func
()
{
//在UI主线程执行
chromium
:=
window
.
Chromium
()
...
...
@@ -118,6 +121,22 @@ func main() {
}
})
}
// 模拟textarea滚动
var
textareaWheelEvent
=
func
(
domRect
cef
.
TCefRect
)
{
// 点击, 获取焦点
buttonClickEvent
(
domRect
)
chromium
:=
window
.
Chromium
()
// 鼠标事件
me
:=
&
cef
.
TCefMouseEvent
{
Modifiers
:
consts
.
EVENTFLAG_MIDDLE_MOUSE_BUTTON
,
}
// 设置元素坐标,元素坐标相对于窗口,这里取元素中间位置
me
.
X
,
me
.
Y
=
domXYCenter
(
domRect
)
for
i
:=
0
;
i
<
10
;
i
++
{
chromium
.
SendMouseWheelEvent
(
me
,
-
100
,
-
100
)
time
.
Sleep
(
time
.
Second
/
2
)
}
}
ipc
.
On
(
"renderLoadEnd"
,
func
(
browserId
int32
,
channelId
int64
,
doms
map
[
string
]
cef
.
TCefRect
)
{
fmt
.
Println
(
"doms"
,
doms
)
// 按钮
...
...
@@ -127,7 +146,8 @@ func main() {
// 文本框
inputTextEvent
(
"我爱中国!"
,
doms
[
"inp2Text"
])
//中文
inputTextEvent
(
"energy.yanghy.cn"
,
doms
[
"inpText"
])
//英文
// 滚动条
// 滚动
textareaWheelEvent
(
doms
[
"tare"
])
// 回复到渲染进程执行成功, 触发是Go的事件.
ipc
.
EmitTarget
(
"repayMockIsSuccess"
,
target
.
NewTarget
(
browserId
,
channelId
,
target
.
TgGoSub
))
})
...
...
example/mockevent/resources/index.html
浏览文件 @
35cb9637
...
...
@@ -3,12 +3,6 @@
<head>
<meta
charset=
"UTF-8"
>
<title></title>
<script>
function
btnClick
(
m
)
{
let
msg
=
document
.
getElementById
(
"
msg
"
)
msg
.
innerHTML
+=
m
.
innerText
+
"
<br>
"
}
</script>
</head>
<body>
<button
onclick=
"btnClick(this)"
id=
"btn1"
style=
"position: absolute;top: 100px;left: 100px"
>
Button1
</button>
...
...
@@ -16,6 +10,17 @@
<button
onclick=
"btnClick(this)"
id=
"btn3"
style=
"position: absolute;top: 500px;left: 200px"
>
Button3
</button>
<input
type=
"text"
id=
"inpText"
><br>
<input
type=
"text"
id=
"inp2Text"
style=
"position: absolute;top: 40px;left: 90px"
><br>
<textarea
id=
"tare"
style=
"position: absolute;top: 100px;left: 320px"
rows=
"10"
cols=
"20"
></textarea>
<div
id=
"msg"
></div>
</body>
<script>
let
msg
=
document
.
getElementById
(
"
msg
"
)
let
tare
=
document
.
getElementById
(
"
tare
"
)
function
btnClick
(
m
)
{
msg
.
innerHTML
+=
m
.
innerText
+
"
<br>
"
}
for
(
let
i
=
0
;
i
<
1000
;
i
++
){
tare
.
value
+=
i
}
</script>
</html>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录