Blazor文件输入单击在firefox中不工作

Blazor文件输入单击在firefox中不工作,firefox,input,file-upload,click,blazor,Firefox,Input,File Upload,Click,Blazor,我正在创建一个blazor应用程序,其中使用隐藏文件输入并单击()方法打开文件选择器。它在镀铬、镶边的情况下工作良好。文件选择器未在Firefox中打开 下面是我重现该问题的示例代码。 index.razor: @inject IJSRuntime JSRuntime; @*File Input is clicked using JSinterop on blazor click event of button*@ <div> <button @onclick="OnC

我正在创建一个blazor应用程序,其中使用隐藏文件输入并单击()方法打开文件选择器。它在镀铬、镶边的情况下工作良好。文件选择器未在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");
    }
}
是否有解决上述问题的方法

FireFox版本:72.0.2


更新:我也在

中报告了这个问题。我也有同样的问题。似乎是一个与JsInterop相关的bug

在aspnetcore回购中创建了一个问题:

解决方法

剃须刀页面:


进口
功能:

函数单击文件输入(){
document.getElementById('fileInput')。单击();
}

报告的问题已在Firefox中解决。检查与以下问题相关的错误报告,以供参考


在firefox中,单击对文件输入没有影响,而且似乎对文件输入仍然没有影响。您是否尝试在firefox中将断点设置为
element单击
函数?它被执行了吗?我在Firefox中检查了带有断点的
元素click
函数,它被执行了。我还使用自定义函数检查了输入的onClick事件。执行自定义函数,但未打开文件选择器@VojtěchDohnalSo这似乎是一个与blazor无关的javascript Firefox问题。当我尝试使用纯javascript和HTML@VojtěchDohnalI时,相同的场景也适用于Firefox。我不理解您的解决方法@xFirestrom。如果ClickFileInput在javascript互操作文件中,如何直接调用click event?中的函数?。如果函数是在razor页面中定义的,如何使用razor页面上的文档对象?如果我理解错了,请纠正我。这个按钮不是通过blazor绑定的,会有一个@onclick。因此,解决方法是使用纯html和js来单击文件输入。我不知道为什么,但这样做是有效的。我在上面提到过这个问题,他们正在研究这个问题,并且在.NET5的sprint计划中也有这个问题
window.elementClick = (Id) => {
   // Triggers click event of the element
    document.getElementById(Id).click();
};