我想在新的选项卡中打开一个PDF文件。以下代码可以在普通的HTML文件中工作,但在Blazor中不起作用。是否有办法在Blazor中使用它,或者有其他方法可以在Blazor中打开PDF文件?
<a href="Path" target="_blank">Read more</a>
我想在新的选项卡中打开一个PDF文件。以下代码可以在普通的HTML文件中工作,但在Blazor中不起作用。是否有办法在Blazor中使用它,或者有其他方法可以在Blazor中打开PDF文件?
<a href="Path" target="_blank">Read more</a>
在“正常”的HTML中有效的内容,在Blazor中可能无法正常工作,因为service-worker会将未知路由重定向到index.html。请参见service-worker.published.js文件中的onFetch()
方法:
const shouldServeIndexHtml = event.request.mode === 'navigate';
const request = shouldServeIndexHtml ? 'index.html' : event.request;
<a href="Path" target="_blank">Read more</a>
时,shouldServeIndexHtml
为true
。const shouldServeIndexHtml = event.request.mode === 'navigate'
&& !event.request.url.includes('/pdf/');
const request = shouldServeIndexHtml ? 'index.html' : event.request;
假设您的pdf文件在wwwroot下的子文件夹“pdf”中。请在这里找到更多信息。由于url包含“/pdf/”,shouldServeIndexHtml
变为false
,因此您的pdf将被显示。
@inject IJSRuntime jsRuntime
<button @onclick="@LoadPage">Load Page</button>
@code {
async Task LoadPage()
{
await jsRuntime.InvokeAsync<object>("open", "MyPage", "_blank");
}
}
通过链接。
<a class="dropdown-item" href="MyPage" target="_blank">
你想要启动的 Razor 页面顶部应该有以下内容:
@page "/MyPage"