Нажатие на ввод файла Blazor не работает в firefox - PullRequest
3 голосов
/ 21 января 2020

Я создаю блейзер-приложение, в котором я использую скрытый файл ввода и метод click (), чтобы открыть средство выбора файлов. Отлично работает в Chrome, Edge. Средство выбора файлов не открывается в Firefox.

Ниже приведен пример кода для воспроизведения проблемы. index.razor:

@inject IJSRuntime JSRuntime;
@*File Input is clicked using JSinterop on blazor click event of button*@
<div>
    <button @onclick="OnClick">Select File</button>
    <input type="file" id="fileElem" multiple style="display:none">
</div>


@code{
    private async Task OnClick()
    {
        //Triggers the click event of file Input
        await JSRuntime.InvokeVoidAsync("elementClick", "fileElem");
    }
}

JSInterop:

window.elementClick = (Id) => {
   // Triggers click event of the element
    document.getElementById(Id).click();
};

Есть ли способ обойти вышеуказанную проблему?

FireFox Версия: 72.0.2

Обновление: я также сообщал об этой проблеме в BUGZILLA

1 Ответ

0 голосов
/ 27 марта 2020

У меня такая же проблема. Кажется, это ошибка, связанная с JsInterop.

Создана проблема в репозитории aspnetcore: https://github.com/dotnet/aspnetcore/issues/20228

Обходной путь :

Страница бритвы:

<input type="file" id="fileInput" style="display: none;" @onchange="YourAfterFileSelectedMethod"/> 
<button onclick="ClickFileInput()">Import</button>

Функция:

function ClickFileInput() {
    document.getElementById('fileInput').click();
}
...