我想编辑在Chrome中加载的脚本来源。
我已成功收听调试程序域的事件scriptParsed
,如Chrome调试协议中所述。我使用它来调用Debugger.setScriptSource
来修改脚本。这一切都很好,除了工作人员,我没有得到相应的scriptParsed
。
是否有可能为工人做同样的事情?
答案 0 :(得分:3)
这是一个理论上的尝试答案,因为我还没有编写任何代码来测试这个想法。
协议中有Target
域应该处理工作人员事件。我花了一段时间才搞清楚。我注意到old fork Chrome Debugging Protocol Viewer commits,其中有一个Worker
域,但它不在实时域中。我后来在here中发现它已合并到Target
域中,这对我来说并不是很明显。
targetCreated
事件可能是侦听新工作器实例的事件。这在它的回调中提供了TargetInfo
对象,它具有targetId,
和type
,其值可能与'Web Worker'或'Worker'一致(尽管总猜测)
然后,您可以使用attachToTarget
方法附加到工作进程,并提供targetId
。成功附加后,您可以向其发送消息。在您的情况下,您可以发送命令来监听scriptParsed
事件,回调为Debugger.setScriptSource
。
我不太确定所有这些事件的时间安排。完全有可能所有这一切都会发生得太晚,但这个想法值得一试。
当我得到片刻时,我会玩这个游戏。如果它有效,我会发布一些有关它的内容。如果没有,将进一步调查。