converse.js:如何在登录表单中预填充“用户名”字段

时间:2018-10-06 12:19:49

标签: converse.js

我已经尝试过了:

<script>
converse.initialize({ 
    websocket_url: 'wss://xxx.xxx.xxx/websocket', 
    jid:'xxxxx@xxxx.xxx.xxx',
    show_controlbox_by_default: true, 
    view_mode: 'overlayed' });
</script>

我希望这将显示一个登录表单,其中的“用户名”字段已经填充了jid中给出的值。但是,converse.js仍显示带有默认占位符的空字段。

我正在使用“ https://cdn.conversejs.org/4.0.1/dist/converse.min.js

1 个答案:

答案 0 :(得分:0)

好的,所以我不是JavaScript程序员,但是我想出的解决方案是修改renderLoginPanel()函数并添加以下内容

    renderLoginPanel() {
      this.el.classList.add("logged-out");

      if (_.isNil(this.loginpanel)) {
        this.loginpanel = new _converse.LoginPanel({
          'model': new _converse.LoginPanelModel()
        });
        const panes = this.el.querySelector('.controlbox-panes');
        panes.innerHTML = '';
        panes.appendChild(this.loginpanel.render().el);
        this.insertBrandHeading();
      } else {
        this.loginpanel.render();
      }

      /* ***Add this line to pre-populate the username field*** */
      document.getElementById("converse-login-jid").value = _converse.jid; 

      this.loginpanel.initPopovers();
      return this;
    },

我很想知道这是否是一个好的解决方案。