
以下脚本将阻止您离开正在编辑的博客文章。当您发布、保存为草稿或删除时,它允许您退出。
查看我的其他Bearblog 技巧和工具
访问https://bearblog.dev/dashboard/customise/并将以下代码粘贴到“仪表板页脚内容”中。
<!-- 防止意外离开“新帖子”和“编辑帖子”页面。--> <脚本类型= “文本/javascript” > window.addEventListener ( '卸载前' , 函数(事件) { const 网址 = 窗口.位置.href ; const 正文内容 = 文档.getElementById ( “body_content” ) ; // 确保我们位于新帖子/编辑帖子页面。 如果 ( ! url.includes ( '/dashboard/posts / ' ) ||正文内容 == 无效的) { //console.log("url 不匹配或 body_content 为空"); 返回 无效的; } const 目标 = 事件.原始目标.活动元素; // 如果您正在提交或删除,我们允许退出页面 如果 (目标.getAttribute ( '类型' ) == '提交' || 目标.内部文本 == '删除' ) { //console.log("是提交还是删除"); 返回 无效的; } //console.log("确认退出"); // 这是一个新的/编辑帖子(或页面),因此让我们确认您是否要离开 const 味精 = “您确定要离开此页面吗?” ; // .returnValue 方法“在 Firefox、Safari 和 Chrome 的现代版本中是一致的。”根据 mdn,但我将返回消息作为小众浏览器的后备,以防它们出错。 (事件 || 窗口.事件).返回值 = 味精; 返回 味精; } ); </脚本>
注意:至少在 Firefox 中,如果你加载完页面后尝试离开而不做任何修改,退出阻止机制似乎会失效。我不知道为什么,我猜是 onbeforeunload 没有被调用?不过没关系,因为你没有丢失任何工作。
原文: https://reedybear.bearblog.dev/prevent-accidentally-leaving-new-post-page/