适用于Blazor Wasm和Blazor SSR
调用下面的js方法
说一下为什么不用window.open
,有可能被拦截是小问题,大问题是打开新页面未加载完时,回到原页面,大概率卡死,无法点击任何东西,只有f12之后才恢复回来。
而用创建a标签就不会有这种问题。
// 创建超链接,不会被拦截
function openBrowserUrl(url, id) {
let a = document.createElement("a");
a.setAttribute("href", url);
a.setAttribute("target", "_blank");
a.setAttribute("id", id);
// 防止反复添加
if (!document.getElementById(id)) {
document.body.appendChild(a);
}
a.click();
}
适用于Maui Blazor
适用于 Winform Blazor和WPF Blazor
直接用Process.Start(url)
是无效的,还是下面这种方法,调用cmd更好
Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true });
适用于 Photino.Blazor的Linux
Process.Start("xdg-open",url);