HomeDash Bot
8ba5e5117b
feat(web): 工作空间内嵌网页 + 控件收边 + 页脚去重 + 窄屏不再重叠
1) 工作空间真的在中间打开网页
Dashy 的面板就是 iframe,但它的 launchApp() 只在 target 不是 newtab 时
才把 URL 灌进 iframe;而且侧栏项目大多没有 per-item target,Dashy 走的是
Vue 直接改 iframe.src 的路径 —— 根本不经过 window.open,导致判定逻辑被
绕过(实测:Gitea 仍被内嵌、空白)。现在两条路径统一进 verifyAndShow():
先探测再决定内嵌还是明确提示;被拒时还会清空 iframe 的 src。
2) 控件在工作空间收边
中间嵌的是别人的应用,常驻控件会遮挡。搜索球收左边缘、右下角两个按钮
组成 dock 整组收右边缘、备案号收下边缘,各露 14px(备案号 13px),
鼠标移入或点击、聚焦时滑出展开。只在工作空间生效。
3) 修 iframe 撑高页面 77px
Dashy 的 .web-content iframe 是 position:absolute,包含块是 #dashy 而非
.web-content,外层 overflow:hidden 拦不住它,它按 #dashy 高度撑到 814px
(164+814=977 正好等于页面 scrollHeight)。补 position:static 后归零。
4) 首页不再出现两个备案号
Vue 异步挂载,navi.js 可能先补了一份页脚,之后 Dashy 的页脚才出现;
原来的守卫只判断 .navi-footer 是否存在,不会回收自己早先注入的那份。
新增 dashyFooterNode() 区分两者,发现 Dashy 的就把我们补的移除。
5) 窄屏展开搜索框不再压住右下按钮组
手机端展开宽度是 calc(100% - 86px),而按钮组占最后 114px → 重叠 38px。
改为按按钮组真实占位预留(≥600px: min(560px, 100% - 158px);
≤599px: calc(100% - 132px));≤380px 时输入框会窄到不可用,改为
临时隐藏按钮组(用 visibility 而非 transform,因为 prefers-reduced-motion
会强制 transform:none)。
2026-09-11 19:04:38 +08:00
..
2026-09-11 11:49:31 +08:00
2026-09-11 19:04:38 +08:00
2026-09-11 19:04:38 +08:00
2026-09-11 16:25:26 +08:00