svelte - Svelte 如何捕获浏览器后退按钮或卸载?
问题描述
我想在我的 Svelte SPA 应用程序中完全控制导航。
有没有办法捕获后退、前进和刷新按钮,以便我可以发出有关丢失页面的警告?
解决方案
假设您没有使用 Sapper 或第三方 Svelte 路由库,您可以beforeunload
按照评论中的建议来实现。这是一个带有 TypeScript 的片段。
<script lang="ts">
export let name: string;
function beforeunload(event: BeforeUnloadEvent) {
event.preventDefault();
return event.returnValue = '';
}
</script>
<p>{name}</p>
<svelte:window on:beforeunload={beforeunload}/>
on:beforeunload
可能会引发类型错误,但它应该可以正常工作。
推荐阅读
- asp.net-core-mvc - 访问 wwwroot - Asp.Net Core MVC 在本地主机上运行良好,但在已发布的应用程序中运行良好
- html - HTML CSS Modal content is "out of box"
- amazon-web-services - Restrict S3 sub-folder level bucket policy about private and public
- javascript - 如何在中间定位行反应语义ui
- flutter - Flutter BLoc pass parameters
- c# - 锚没有正确调整按钮大小并且文本消失如何解决?
- html - Why can't Macbook users upload MOV files to HTML file input forms?
- laravel - Avoid overriding eloquent data
- c++ - Using QtConcurrent::map() function on QList yields segmentation fault
- javascript - How to use setTimeout to make a list item wait for some time to restore its original color after a click?