addEventListener / onchange не работает в IE - PullRequest
4 голосов
/ 30 марта 2019

Я разрабатываю плагин javascript для Outlook.

Чтобы он работал на рабочем столе Outlook, мне нужно, чтобы он работал в Internet Explorer 11.648. Потому что в случае Outlook Desktop основным браузером является IE.

Следующий фрагмент кода работает в Chrome, Firefox и Microsoft Edge, но не в IE 11. Функция не вызывается.

document.getElementById("upload_docu").addEventListener("change", function() {
  readURL(this);
}, false);


function readURL(input) {
  console.log("Read url called.");

  if (input.files && input.files[0]) {

    var reader = new FileReader();

    reader.onload = function(e) {
      $('.image-upload-wrap').hide();

      $('.file-upload-image').attr('src', e.target.result);
      $('.file-upload-content').show();

      $('.image-title').html(input.files[0].name);
    };

    reader.readAsDataURL(input.files[0]);
    file_name = input.files[0].name;
    var formData = new FormData();
    formData.append('document', input.files[0], input.files[0].name);
    console.log("Read url before url");

    var url = "https://dev.paksign.pk/api/v1/profile/" + localStorage.getItem('profile-uuid') + "/document/"

    $.ajax({
      url: url,
      type: 'post',
      headers: {
        'Authorization': 'JWT ' + localStorage.getItem("jwt_token")
      },
      data: formData,
      processData: false,
      contentType: false,
      success: function(data) {
        document_id = data.uuid;
        button = document.getElementById("upload_next");
        button.disabled = false;

      }
    });

  } else {
    removeUpload();
  }
}
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

<div class="file-upload">

  <div class="image-upload-wrap">
    <input class="file-upload-input" type='file' id="upload_docu" accept="" />
    <div class="drag-text">
      <h3>Drag and drop a file.</h3>
    </div>
  </div>

</div>

Другие опции

Попробовал следующие решения, они тоже не сработали в IE.

$('#upload_docu').on("change", function(){ readURL(this); });

<input class="file-upload-input" type='file' id="upload_docu" onclick="readURL(this);" accept="" />

<input class="file-upload-input" type='file' id="upload_docu" onchange="readURL(this);" accept="" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...