Ввод файла javascript клик не работает в Safari - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь программно открыть файл, введенный из javascript, и он не работает в Safari (13.0.5). Этот файл ввода не скрыт или что-нибудь. До сих пор я пробовал все эти различные способы:

<input type="file" id="markupImport"></input>

$('#markupImport').click()
$('#markupImport').trigger('click')

document.getElementById('markupImport').click()
document.getElementById('markupImport').trigger('click')

event = document.createEvent('MouseEvents')
event.initEvent('click', true, false)
$('#markupImport')[0].dispatchEvent(event)
document.getElementById('markupImport').dispatchEvent(event)

event = document.createEvent('MouseEvents')
event.initMouseEvent('click', true, true, window)
$('#markupImport')[0].dispatchEvent(event)
document.getElementById('markupImport').dispatchEvent(event)

document.getElementById('markupImport').dispatchEvent(new Event('click'))

Я смотрел на В JavaScript Можно ли программно вызвать событие "click" для элемента ввода файла? , не вызывается событие вызова вызова ввода в Safari , Невозможно щелкнуть тип ввода = "файл" в windows браузер Safari , Программный запуск "выбрать файл "диалоговое окно , и все остальные, которые я уже могу найти.

Я пытаюсь сделать это из обработчика select onchange, когда выбран определенный параметр:

<select id="markupImport">
  <option value="Import">Import</option>
  <option value="Export">Export</option>
</select>
<input type="file" id="markupImport"></input>

$(function() {
  $('#markupImport').change(function(event) {
    if (event.target.value == 'Import') {
      $('input[name="markupImport"]').click();
    }
  });
});

Мне интересно, если это вообще невозможно сделать в Safari?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...