Files
contentm_agent/执行会话/.trash/20261008-d85687/_probe/hashset.html
T
WorkBuddy df56c2c137 初始化提交:contentm_agent 工作区全量快照
内容分四块:
1、产品规划产出 —— MCN 短视频整合营销工作台的①段五份(1a 需求/1b 竞品/1c 画像/1d 策略/1e 场景)、②段两份(2a 功能/2b 布局)、③段界面(DESIGN.md 契约与令牌表 + mcn-workbench.html 原型 + 实测/会诊/审查三份 + 23 张闸门截图)。
2、开源竞品调研 —— 5 个内容工作台项目的取证原始件与 1b 系列分析文档。
3、参考资料 —— 竞品视频抽帧 1145 张 + 2 个源视频 + 功能点截图。
4、机制侧 —— 协作脚本与状态台账、工作区记忆日志、抽帧/OCR 脚本。

.gitignore 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
2026-10-08 08:13:02 +08:00

48 lines
1.6 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><title>probe</title></head>
<body>
<div id="out"></div>
<button id="b" data-act="TEST">点我</button>
<script>
var L=[];
function log(s){ L.push(s); document.getElementById('out').textContent=L.join('\n'); }
log('loadHash=['+location.hash+']');
/* ① 直接写 location.hash */
var h1=location.hash;
location.hash='#/p/p2/ok';
log('① 直接赋值: before=['+h1+'] after=['+location.hash+']');
/* ② history.replaceState */
var rs='ok';
try{ history.replaceState(null,'','#/p/p9/ok'); }catch(e){ rs='throw:'+(e&&e.name)+'/'+e.message; }
log('② replaceState='+rs+' hashNow=['+location.hash+']');
/* ③ history.pushState */
var ps='ok';
try{ history.pushState(null,'','#/p/p7/ok'); }catch(e){ ps='throw:'+(e&&e.name); }
log('③ pushState='+ps+' hashNow=['+location.hash+']');
/* ④ document 级委托 click + 合成事件 */
var fired=[];
document.addEventListener('click', function(ev){
var t=ev.target.closest('[data-act]');
if(!t) { fired.push('no-data-act'); return; }
fired.push('handled:'+t.dataset.act);
location.hash='#/p/p3/ok';
});
var b=document.getElementById('b');
b.dispatchEvent(new MouseEvent('click',{bubbles:true}));
log('④ 合成点击: fired=['+fired.join(',')+'] hash=['+location.hash+']');
/* ⑤ 原生 click() 方法 */
var fired2=[];
document.addEventListener('click', function(ev){ if(ev.target.id==='b') fired2.push('native-click-ok'); });
b.click();
log('⑤ el.click(): fired=['+fired2.join(',')+'] hash=['+location.hash+']');
log('finalHash=['+location.hash+'] stylesheets='+document.styleSheets.length);
</script>
</body></html>