feat(oss-browser-link): 实现一键注册+自动定位补丁功能
1. 新增oss-browser自动定位包装层脚本与注册批处理 2. 优化粘贴行为:焦点在输入框时交给浏览器默认粘贴 3. 新增一批调试与构建辅助脚本 4. 更新oss-browser下载页说明与步骤
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
// 仅连接 CDP 读取 __trae_dbg(配合手动启动的带调试端口实例)
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms))
|
||||
;(async () => {
|
||||
let page = null
|
||||
for (let i = 0; i < 20 && !page; i++) {
|
||||
await sleep(1000)
|
||||
try {
|
||||
const list = await (await fetch('http://127.0.0.1:9222/json')).json()
|
||||
page = (list || []).find(t => t.type === 'page' && /index\.html/.test(t.url || ''))
|
||||
} catch {}
|
||||
}
|
||||
if (!page) { console.log('no page target'); process.exit(1) }
|
||||
const ws = new WebSocket(page.webSocketDebuggerUrl)
|
||||
await new Promise((res, rej) => { ws.onopen = res; ws.onerror = rej })
|
||||
for (let i = 0; i < 10; i++) {
|
||||
await sleep(2000)
|
||||
const r = await new Promise(resolve => {
|
||||
const id = 777 + i
|
||||
const onMsg = ev => { const m = JSON.parse(ev.data); if (m.id === id) { ws.removeEventListener('message', onMsg); resolve(m.result) } }
|
||||
ws.addEventListener('message', onMsg)
|
||||
ws.send(JSON.stringify({ id, method: 'Runtime.evaluate', params: { expression: 'JSON.stringify({dbg: window.__trae_dbg || null, hasNg: !!window.angular, url: location.href})', returnByValue: true } }))
|
||||
})
|
||||
console.log(`t+${(i + 1) * 2}s`, r.result && r.result.value)
|
||||
}
|
||||
ws.close()
|
||||
process.exit(0)
|
||||
})()
|
||||
Reference in New Issue
Block a user