From 7cc154d9b378bcaaba9d8bc0430a8c293cb08238 Mon Sep 17 00:00:00 2001 From: deploy Date: Mon, 9 Nov 2026 14:06:03 +0000 Subject: [PATCH] =?UTF-8?q?v26110903=20=E5=B9=BF=E5=9C=BA/=E4=B8=93?= =?UTF-8?q?=E9=A2=98/=E8=AE=A1=E7=AE=97=E5=99=A8/=E6=B5=8B=E4=B8=80?= =?UTF-8?q?=E6=B5=8B=E5=9C=A8=E5=B0=8F=E7=A8=8B=E5=BA=8F=E9=87=8C=E4=B9=9F?= =?UTF-8?q?=E5=BC=80=E5=AE=B9=E5=99=A8=E9=A1=B5=EF=BC=8C=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=E7=9B=B4=E8=BE=BE=EF=BC=9B=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E9=A1=B5=E8=BF=94=E5=9B=9E=E8=B5=B0=20navigateBack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 js/host-nav.js(MBHost.open/back/home + 页内同站 拦截): - 首页进广场、专题问题、百宝箱测一测/计算器 → 容器页;广场点笔记 → 容器页 ?n= - 容器页(_hv=1)里笔记关闭、广场/专题/计算器返回 → navigateBack;广场「返回」tab → switchTab 首页 - 失败或不在小程序照旧本页跳转 Co-Authored-By: Claude Opus 5.5 --- guangchang/index.html | 25 +++++++++---- index.html | 7 ++-- js/app.js | 9 +++-- js/host-nav.js | 76 ++++++++++++++++++++++++++++++++++++++++ js/kit.js | 5 +-- js/mb-tabbar.js | 1 + topic/_shared/article.js | 3 ++ topic/_shared/calc.js | 3 ++ topic/jisuan/index.html | 2 +- 9 files changed, 117 insertions(+), 14 deletions(-) create mode 100644 js/host-nav.js diff --git a/guangchang/index.html b/guangchang/index.html index 5031023..ae44bd0 100644 --- a/guangchang/index.html +++ b/guangchang/index.html @@ -3,6 +3,7 @@ + @@ -1311,7 +1312,9 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} } if (window.wxAuth && wxAuth.reportLocation) wxAuth.reportLocation({ href: target }); } catch (e) {} - haptic(); location.href = target; + haptic(); + if (window.MBHost && MBHost.open(url, function () { location.href = target; })) return; + location.href = target; } /* 11-02 v2 用户:「测一测放到『经验』后边;孕妈广场上现在那个测一测删掉;『大家在聊』里穿插几个测一测,点了进对应的测试」 → CATS 加第 5 个分类 ceshi;选中时 #head 放说明卡、#fh 放分组胶囊、#wf 瀑布流放 25 张测试卡;「全部」信息流每 8 张帖子穿插 1 张测试卡(先 CS_MIX 再按热度)。 @@ -1955,7 +1958,7 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} var dc = e.target.closest('#csvGo'); if (dc) { csdRoll(dc); return; } var j = e.target.closest('[data-join]'); if (j) { haptic(); openRule(j.dataset.join); return; } if (e.target.closest('[data-rule]')) { openRule(''); return; } - var rw = e.target.closest('.rwi[data-id]'); if (rw) { haptic(); openNote(rw.dataset.id, true); return; } + var rw = e.target.closest('.rwi[data-id]'); if (rw) { haptic(); openNoteNav(rw.dataset.id); return; } if (e.target.closest('[data-all]')) { openTopics(); return; } var b = e.target.closest('[data-t]'); if (b) { haptic(); selectTopic(b.dataset.t); } }); @@ -2027,7 +2030,7 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} var lk = e.target.closest('[data-like]'); if (lk) { e.stopPropagation(); toggleLike(lk.dataset.like); syncCardLike(lk.dataset.like); return; } var c = e.target.closest('.nc'); - if (c) openNote(c.dataset.id, true); + if (c) openNoteNav(c.dataset.id); }); /* ---------- 详情 ---------- */ @@ -2084,6 +2087,13 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} try { history.replaceState(null, '', location.pathname + (qs ? '?' + qs : '') + location.hash); } catch (e) {} q.set('wh', '1'); location.href = '../?' + q + location.hash; } + /* 11-09 用户:笔记详情里点小程序「复制链接」要直达这篇 —— 小程序里点开笔记改开容器页(js/host-nav.js), + 开不了(不在小程序 / 页面栈满)照旧在本页弹详情层 */ + function openNoteNav(id) { + var n = NBY[id]; + if (n && !n.pin && window.MBHost && MBHost.open(setQuery(cur, id), function () { openNote(id, true); })) return; + openNote(id, true); + } function openNote(id, push) { var n = NBY[id]; if (!n) return; if (n.pin) return goStar(); /* 11-07 用户:点置顶笔记直接进星空页,留言在星空页下面(openPin 详情页不再用) */ @@ -2148,7 +2158,9 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} function closeNote() { if (!openId) return; if (pushed) { history.back(); return; } /* popstate 里 hideNote */ - hideNote(); history.replaceState(history.state, '', setQuery(cur, '')); + var off = function () { hideNote(); history.replaceState(history.state, '', setQuery(cur, '')); }; + if (window.MBHost && MBHost.back(off)) return; /* 11-09 容器页直接开的这篇:回上一页(广场列表 / 首页);复制链接打开、没有上一页时照旧关层 */ + off(); } window.addEventListener('popstate', function () { if (sheetOn) closeSheet(); @@ -2311,7 +2323,7 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} $('#fvBack').addEventListener('click', closeFav); $('#fvw').addEventListener('click', function (e) { var lk = e.target.closest('[data-like]'); if (lk) { toggleLike(lk.dataset.like); syncCardLike(lk.dataset.like); return; } - var c = e.target.closest('[data-id]'); if (c) { haptic(); openNote(c.dataset.id, true); } + var c = e.target.closest('[data-id]'); if (c) { haptic(); openNoteNav(c.dataset.id); } }); function syncMyCard() { var c = $('#myc'); if (c) { c.outerHTML = myCardHTML(); } } function loadMine(cb) { @@ -2444,6 +2456,7 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} $('#back').addEventListener('click', function () { /* 11-02 用户:「从首页点热门话题进来,左上角返回要回孕妈广场,不是首页」→ 在话题里先退回广场「全部」,再按一次才回首页 */ if (cur) { haptic(); catF = ''; selectTopic(''); return; } + if (window.MBHost && MBHost.back(function () { location.href = homeURL(); })) return; /* 11-09 容器页:回小程序上一页 */ var fromHome = false; try { fromHome = !!document.referrer && new URL(document.referrer).origin === location.origin; } catch (e) {} if (fromHome && history.length > 1) { @@ -2459,7 +2472,7 @@ html.night .gtg button.on{background:#F2725B;border-color:#F2725B;color:#fff} if (cur || catF) { catF = ''; selectTopic(''); } $('#sc').scrollTo({ top: 0, behavior: 'smooth' }); }); - $('#tabHome').addEventListener('click', function () { haptic(); location.href = homeURL(); }); /* 广场就在首页仓里,直接回 ../ 带身份,不走 goHome */ + $('#tabHome').addEventListener('click', function () { haptic(); if (window.MBHost && MBHost.home(function () { location.href = homeURL(); })) return; location.href = homeURL(); }); /* 广场就在首页仓里,直接回 ../ 带身份,不走 goHome */ /* 记一下:和首页「记一下」同一份数据 —— 后台 App 表已上架、category=孕期工具(首页 loadPublishedApps 同规则); 数胎动 16 / 数宫缩 20 / 胎儿估重 15 周前灰掉、点了提示(同首页 STAGE_GATE,孕周取首页写的 mmbox.gcwk.v1,拿不准不拦) */ var REC_GATE = { taidong: [16, '数胎动'], gongsuopinlv: [20, '数宫缩'], taierguzhong: [15, '胎儿估重'] }, recApps = null; diff --git a/index.html b/index.html index 45eea7a..8f22f28 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ 兜爸心选 · 孕育陪伴 - + @@ -19,6 +19,7 @@ +