Update javascript_methods

master
yutent 2023-09-08 17:51:09 +08:00
parent 3917b6821c
commit 5bdc2cd0b2
1 changed files with 27 additions and 4 deletions

@ -83,16 +83,36 @@ console.log(native.env)
- `.set_status(stat = 0)`, 0为隐藏, 1为显示, 2为显示attention状态
### `opener`窗口对象 【0.5.0新增】
> 指的是应用的父窗口对象(`Gtk.Window`)。
### `opener` 父窗口对象 【0.5.0新增】
> 指的是应用的父窗口对象(`Gtk.Window`)。
- `.postMessage(data)` 向父级窗口发送数据
> 父级窗口, 可以通过`window.addEventListener('message', callback)`接收子窗口发送的数据。 没有父级窗口时, 则会指向当前窗口。
- `.postMessage(data)` 向父窗口发送数据
> 父窗口, 可以通过`window.addEventListener('message', callback)`接收子窗口发送的数据, 父窗口可使用`ev.source.postMessage()` 向该子窗口发送消息【0.6.0新增】。 没有父窗口时, 则会指向当前窗口。
```js
// 父窗口
window.addEventListener('message', ev => {
console.log(ev.uuid) // 若有uuid, 则说明这条消息是从子窗口发来的。 否则为 父窗口或自身发来的。
// 可以向消息来源的窗口发送回执消息 (要注意, 若没有 ev.uuid 时, 谨慎调用, 否则会一直死循环的)
// 这是 0.6.0新增的支持功能
ev.source.postMessage('已收到')
})
// 子窗口
native.opener.postMessage('我是来自子窗口的消息')
```
### `children` 子窗口对象 【0.6.0新增】
- `.postMessage(data, uuid = null)` 向子窗口发送数据, uuid为子窗口的uuid, 可不传
> 向子窗口发送消息, 若不传子窗口的uuid时, 则会向所有的子窗口同时发送消息。若没有子窗口时, 会发送到当前窗口。
### `window` 窗口对象
指的是应用的窗口对象(`Gtk.Window`)。
- `uuid` 窗口唯一标识。 只是给你看的, 没啥用。【0.6.0新增】
- `.create(options = {})` 创建新窗口, 对比window.open(), 这里创建的窗口, 提供更多高级的配置项。
> 【0.5.0新增】 options 结构如下
> - url`<string>` , 这个不多说了
@ -105,6 +125,9 @@ console.log(native.env)
> - y`<int>` , 窗口打开时, 位于显示器的纵坐标
> - always_on_top`<boolean>` ,打开的窗口, 保持一直在最上层。
> - resizable`<boolean>` , 窗口是否允许调整大小(这个在不同的桌面环境下, 不一定生效)
> - icon`<string>` , 【0.6.0新增】图标名称, `Linux`专用, 只传图标名即可, 会自动读取主题中的图标(如果存在的话)
> - icon_path`<string>` , 【0.6.0新增】图标文件的绝对路径, 1:1大小, png格式。
> - uuid`<string>` , 【0.6.0新增】新建窗口的uuid, 不可重复, 否则发送消息只有第1个能收到, 不传则随机生成值。
- `.close()` 当前当前窗口, 效果等同于JS的原生方法 `window.close()`。 这里仅用于以防万一`window.close()`无响应时, 可改用本方法关闭。