Я пытаюсь программно открыть файл, введенный из 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?