При открытии PDF в новом окне он загружается вечно, и событие onload никогда не запускается - PullRequest
0 голосов
/ 08 мая 2019

Я загружаю PDF в новом окне в формате строки BASE64, отправленном с моего сервера.Он работает с загрузкой в ​​новом окне, но никогда не запускает обратный вызов из функции document.write.Это просто продолжает загружаться вечно без остановки.Присвоение имени окну также не работает, так как оно просто говорит без названия и просто продолжает загрузку и загрузку.Если я вызываю document.close сразу после document.write, тогда pdf даже не загружается.Я попытался поместить его в обратный вызов из document.write, но обратный вызов никогда не вызывался.Любая помощь будет оценена

submit: function () {
      this.$Socket.emit('addrepair', {
        CustomerID: this.$route.params.Customer.CustomerID,
        Problem: this.problem,
        BrandID: this.brand,
        TypeID: this.type,
        Model: this.model,
        ColorID: this.color,
        Warranty: this.convertbool(this.warranty),
        Purchased: this.convertbool(this.purchase),
        RushService: this.convertbool(this.rush),
        DateReceived: this.datereceived,
        UserID: this.UserID
      }, (data) => {
        if(data.authenticated==true)
        {
          console.log(data.pdf)
          var winparams = 'dependent=yes,locationbar=no,scrollbars=yes,menubar=yes,'+
            'resizable,screenX=50,screenY=50,width=850,height=1050';

          var htmlPop = '<embed width=100% height=100%' 
                          + ' type="application/pdf"'
                          + ' src="'
                          + data.pdf
                          + '"></embed>';

          var printWindow = window.open ("", "PDF", winparams);
          printWindow.document.write (htmlPop, () => {
            printWindow.document.close();
            printWindow.print();
            printWindow.close();
          })
          //this.renderPDF(data.pdf, document.getElementById("reportdisplay"))

          this.jobdialog=true
        }
      })
    },
...