c# - Blazor 使用 JSRuntime 打开新选项卡/窗口

标签 c# safari blazor

我使用 JSRuntime 从 C# 实现了打开一个新的选项卡/窗口。它在桌面上运行良好,但在手机上使用 safari 时它什么也做不了:新选项卡无法在移动设备上打开。

有没有人有幸让它发挥作用?

await JSRuntime.InvokeAsync<object>("open", url, "_blank");

最佳答案

添加一个 javascript 方法以在另一个选项卡中打开 URL 并使用 JsRuntime 调用该方法。

如果您使用 window.open() js 方法,它不会在所有浏览器上工作,因此需要动态创建一个 a 元素并在其上引发点击事件。

见下文:

window.NavigateTo = (url) => {
  const link = document.createElement('a');
  link.href = url;
  link.target = '_blank';
  document.body.appendChild(link);
  link.click();
  link.remove();
}

关于c# - Blazor 使用 JSRuntime 打开新选项卡/窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64359723/

相关文章:

html - 如何在 blazor 中启用/禁用输入

azure-web-app-service - Blazor WASM - 尝试让您登录时出错 : 'this._settings.loginMode is undefined'

c# - 使用 Linq2Nibernate 和 IQueryable 进行界面设计

c# - 二进制的最佳字符串表示

WordPress 背后的反向代理 : Session-cookies not set in Safari & IE

javascript - react JS |应用程序无法在 IOS 和 IE/Edge 上运行

c# - Global.asax 中的 HttpApplication.Context null

c# - 匿名类型列表或对象列表

javascript - atob() 在 Safari 中出现异常,但在 Chrome 中有效

c# - 使用按键触发 Blazor 中的按钮时未设置对象引用