提问人:Siro 提问时间:8/2/2023 更新时间:8/2/2023 访问量:31
无法访问 HTML 元素上的 __reactInternalInstance$
Can not access __reactInternalInstance$ on HTML Element
问:
我正在创建一个 Chrome 扩展程序,我需要从 HTML 元素获取 React 实例。当我在玩网站并测试这个函数以从 HTML 元素获取 React 实例时,一切都按我的预期工作。
function getReactInstance(element: HTMLElement | undefined): Record<string, any> | undefined {
if (element === undefined) {
return;
}
for (const key in element) {
if (key.startsWith('__reactInternalInstance$')) {
return (element as any)[key] as any;
}
}
}
但是当我尝试使用相同的 HTML 元素调用相同的函数时,它返回了 .undefined
我做了更多的调试,发现如果我尝试调用 HTML 元素,我会得到 2 个不同的结果。Object.getOwnPropertyNames
从 Chrome 扩展程序脚本调用:
[]
从网站上的开发者控制台调用:
['__reactInternalInstance$n8lnk6b117', '__reactEventHandlers$n8lnk6b117']
我的问题是:如何从 Chrome 扩展程序内容脚本访问对象的所有属性?
答:
0赞
Siro
8/2/2023
#1
在互联网上进行了一些清理之后,我创建了一个模糊的图片,说明可能是什么潜在的问题。我的假设是正确的。问题在于 Chrome 扩展程序的内容脚本在孤立的世界中运行。更改为包含设置以解决我的所有问题。manifest.json
world
"MAIN"
{
...
"content_scripts": [{
...
"world": "MAIN"
}]
}
评论