heinetz: String per JS effizient splitten

Beitrag lesen

Ja, damit hatte ich's dann auch gelöst:

  getModalContent() {
    return new Promise((resolve, reject) => {
      if (this.modalContentUrl) {
        const [contentUrl, contentSelector] = this.modalContentUrl.split(/\s/);
        addClass(this.elements.self, this.modalContentLoadingClass);
        const ajax = new XMLHttpRequest();

        ajax.open('GET', contentUrl, true);
        ajax.send();
        ajax.onload = () => {
          if (ajax.status === 200) {
            if (contentSelector) {
              const contentElement = new DOMParser()
                .parseFromString(ajax.responseText, 'text/html')
                .querySelector(contentSelector);
              this.elements.body.innerHTML = '';
              this.elements.body.appendChild(contentElement);
              this.contentElement = contentElement;
            } else {
              this.elements.section.innerHTML = ajax.responseText;
            }
            // history.pushState({ url: contentUrl }, null, contentUrl);
            resolve(ajax.status);
          } else {
            reject(ajax.status);
          }
        };
        ajax.ontimeout = () => {
          reject(ajax.timeout);
        };
      } else {
        resolve(true);
      }
    });
  }