Blazor中用浏览器打开一个链接的最好方法

适用于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

看微软文档就可以了
https://learn.microsoft.com/zh-cn/dotnet/maui/platform-integration/appmodel/open-browser?view=net-maui-7.0&tabs=android#open-the-browser

适用于 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);
posted @ 2023-05-05 23:13  Yu-Core  阅读(350)  评论(0编辑  收藏  举报