diff --git a/src/converse-register.js b/src/converse-register.js index 31bf51c95..8e4d23535 100644 --- a/src/converse-register.js +++ b/src/converse-register.js @@ -269,13 +269,11 @@ renderRegistrationRequest (cancel_label) { const form = this.el.querySelector('#converse-register'); - utils.createElementsFromString( - form, - tpl_registration_request({ - cancel: cancel_label, - info_message: _converse.__('Requesting a registration form from the XMPP server') - }) - ); + const markup = tpl_registration_request({ + 'cancel': cancel_label, + 'info_message': _converse.__('Requesting a registration form from the XMPP server') + }); + form.appendChild(utils.createFragmentFromText(markup)); if (!_converse.registration_domain) { const cancel_button = document.querySelector('button.button-cancel'); cancel_button.addEventListener('click', this.cancelRegistration.bind(this)); diff --git a/src/utils.js b/src/utils.js index 216696f34..7847e4dbd 100755 --- a/src/utils.js +++ b/src/utils.js @@ -589,18 +589,20 @@ }; }; - utils.createElementsFromString = function (element, html) { + utils.createFragmentFromText = function (markup) { + /* Returns a DocumentFragment containing DOM nodes based on the + * passed-in markup text. + */ // http://stackoverflow.com/questions/9334645/create-node-from-markup-string var frag = document.createDocumentFragment(), tmp = document.createElement('body'), child; - tmp.innerHTML = html; - // Append elements in a loop to a DocumentFragment, so that the browser does - // not re-render the document for each node + tmp.innerHTML = markup; + // Append elements in a loop to a DocumentFragment, so that the + // browser does not re-render the document for each node. while (child = tmp.firstChild) { // eslint-disable-line no-cond-assign frag.appendChild(child); } - element.appendChild(frag); // Now, append all elements at once - frag = tmp = null; + return frag }; utils.addEmoji = function (_converse, emojione, text) {