【问题标题】:How to change between fullscreen and overlayed chat with button click event in converse.js如何使用 converse.js 中的按钮单击事件在全屏和覆盖聊天之间切换
【发布时间】:2019-06-17 10:22:27
【问题描述】:

我正在尝试放置一个按钮以将覆盖视图更改为全屏,另一个按钮从覆盖更改为全屏,而不使用 HTML 重定向。

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

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

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

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

【问题讨论】:

    标签: javascript backbone.js converse.js


    【解决方案1】:

    查看相关的 API 文档。

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

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

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

    这不会有任何立竿见影的效果,因为 Converse 还不支持即时更改 view_mode

    【讨论】:

      【解决方案2】:

      感谢您的回答,但我想“即时”。

      最后我“在运行中”实现了它,但做了一些技巧并且可能是错误的东西,但我所做的是删除 DOM 中所有引用“converse-overlayed”的类,然后再次初始化插件:

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

      反之亦然。

      【讨论】:

      • Converse 的设计方式并非让您可以在每个会话中多次调用 converse.initialize。这是未定义的行为,如果一切都继续正常工作,我会感到非常惊讶。
      猜你喜欢
      • 2016-07-29
      • 2021-09-02
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 2020-08-01
      • 2016-09-21
      相关资源
      最近更新 更多