我正在创建一个 blazor 应用程序,在其中我使用隐藏文件输入和 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");
}
}
Run Code Online (Sandbox Code Playgroud)
JSInterop:
window.elementClick = (Id) => {
// Triggers click event of the element
document.getElementById(Id).click();
};
Run Code Online (Sandbox Code Playgroud)
有没有办法解决上述问题?
火狐版本:72.0.2
更新:我也在BUGZILLA 中报告了这个问题
我在 GCP 中部署了 ejabberd/ecs dokcer 映像,服务类型为节点端口,并尝试使用入口访问它,但它不起作用,我无法使用入口访问服务。我为相同的部署添加了另一个服务,其服务类型为负载均衡器,现在我可以直接从该服务访问 ejabberd 服务器。我不知道为 ejabberd 服务添加入口的正确方法是什么。
以下是我的 yaml 文件: Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ejabberd-deployment
spec:
replicas: 1
selector:
matchLabels:
app: ejabberd-deployment
template:
metadata:
labels:
app: ejabberd-deployment
spec:
containers:
- name: ejabberd-container
image: ejabberd/ecs
ports:
- containerPort: 5222
- containerPort: 5443
- containerPort: 4369
Run Code Online (Sandbox Code Playgroud)
服务.yaml
apiVersion: v1
kind: Service
metadata:
name: ejabberd-service
namespace: development
annotations:
# cloud.google.com/backend-config: '{"ports": {"5443":"ejabberd-backend-config"}}'
cloud.google.com/backend-config: '{"default":"ejabberd-backend-config"}'
spec:
ports:
- port: 80
targetPort: 5222
protocol: TCP
name: xmpp
- port: …Run Code Online (Sandbox Code Playgroud) blazor ×1
chat ×1
click ×1
deployment ×1
ejabberd ×1
file-upload ×1
firefox ×1
input ×1
xmpp ×1