我想在新标签页中打开 PDF。以下代码适用于普通 HTML 文件,但不适用于 Blazor。有什么方法可以在 Blazor 中使用它,或者有其他方法可以在 Blazor 中打开 PDF 吗?
<a href="Path" target="_blank">Read more</a>
最佳答案
在“普通”HTML 中有效的方法在 Blazor 中不起作用,因为服务 worker 将未知路由路由到 index.html。参见 onFetch()
service-worker.published.js 方法:
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”中。请查找更多信息here .由于 url 包含“/pdf/”,shouldServeIndexHtml
变成 false
并显示您的 pdf。
https://stackoverflow.com/questions/69973950/
相关文章:
debugging - A/libc : Fatal signal 11 (SIGSEGV), 代码
reactjs - 为什么我的 CSRF token 与 Laravel 和 Sanctum 不匹配
node.js - 如何解决错误 : Cannot find module 'express-rat
amazon-web-services - 如何查看 AWS 备份库的大小?
sql - 传递大的逗号分隔值时,使用 Custom TABLE TYPE 作为参数而不是 SQL
kotlin - 如何在 Kotlin Multiplatform 中获取特定于平台的换行符?
python - Spyder 5.1.5 内核挂起,5.2.1 无法与 conda 一起使用
javascript - 如何将 HTMLElement 转换为 JSX.Element