如何在 converse.js 中使用按钮单击事件在全屏和覆盖聊天之间切换

How to change between fullscreen and overlayed chat with button click event in converse.js

我试图在不使用 HTML 重定向的情况下放置一个按钮将覆盖视图更改为全屏,以及另一个从覆盖视图更改为全屏。

尝试使用 converse.api.settings.update 但它不起作用,看起来它没有呈现 view_mode 变量已更新的页面。

尝试使用函数中的下一个代码,甚至添加了 this.render(),但不起作用:

converse.initialize({
  view_mode: 'fullscreen'
});

_converse.api.settings.update({
  view_mode: 'fullscreen'
});

查看相关 API 文档。

_converse.api.settings.update 不用于更改配置设置。它“允许指定新的配置设置,或指定现有配置设置的新默认值。

所以您所做的只是设置一个新的默认值,这与在运行时更改值不同。

所有配置设置都在 _converse 对象上设置,因此要更改一个,您只需分配一个新值即可,例如 _converse.view_mode = 'fullscreen';.

但这不会立即生效,因为 Converse 尚不支持即时更改 view_mode

感谢您的回答,但我想 "on the fly"。

最后我实现了它 "on the fly" 但是做了一些技巧并且可能是错误的东西,但我所做的是删除 DOM 中所有 类 指的是 'converse-overlayed' 和稍后,再次初始化插件:

converse.initialize({ 
... view_mode: 'fullscreen' 
});

反之亦然