/** * 即刻适配器公共定义 * * JikePost 接口和 getPostData 函数在 feed.ts / search.ts 中复用, * 统一维护于此文件避免重复。 */ /** * 注入浏览器 evaluate 的 JS 函数字符串。 * 从 React fiber 树中向上最多走 10 层,找到含 id 字段的 props.data。 */ export const getPostDataJs = ` function getPostData(element) { for (const key of Object.keys(element)) { if (key.startsWith('__reactFiber$') || key.startsWith('__reactInternalInstance$')) { let fiber = element[key]; for (let i = 0; i < 10 && fiber; i++) { const props = fiber.memoizedProps || fiber.pendingProps; if (props && props.data && props.data.id) return props.data; fiber = fiber.return; } } } return null; } `.trim();