在Chrome Devtools协议中,“ injectedScriptId”是什么?

时间:2019-06-07 05:05:55

标签: javascript debugging google-chrome-devtools chrome-devtools-protocol

在CDP中,例如,当执行Debugger.evaluateOnCallFrame以评估某个对象时,响应将包含一个objectId属性,其外观类似于{injectedScriptId: 1, id: 413}injectedScriptId永远不会改变(至少我从未观察到它改变过)。 id道具似乎是内存中唯一的对象ID。

相关的问题(甚至更重要,但只是寻求确认):id中的objectId是整个程序/过程中对象的唯一标识符吗?我可以依靠它来构建变量的序列化,无循环引用的字符串表示形式吗?

那么injectedScriptId的目的是什么,InjectedScript是什么?

1 个答案:

答案 0 :(得分:0)

Answer from JoelEinbinder

  

这是内部实施细节,因此您不应依赖它   并且它可能随时更改而不会发出警告,或者无法正常运行   始终如此。

     

注入的脚本是我们注入JavaScript的内部内容   执行上下文来管理远程对象和其他事物。那是   为什么他们有单独的ID计数器。

     

因此,内部ID不是唯一的。使用字符串。