是否可以从网页内部使用 Chrome 远程调试协议?

Is it possible to use Chrome Remote Debugging Protocol from inside the webpage?

是否可以从 Chrome 浏览器内部连接到 Remote Debugging Protocol? - 无需为此目的安装和创建扩展。

目的是测试使用 ACE 编辑器或类似工具在 HTML 页面内创建的 JavaScript 代码,以允许用户在页面内 运行 代码片段,然后 return 将结果传给调用页面。例如,代码可能在 IFRAME 中 运行ning。

至少 http://brackets.io/ 据说是 "Brackets is a web-based IDE that uses the Chrome debugging protocol to enable debugging and live HTML/CSS development." - 这让我想知道,浏览器是否有客户端 JS API 与 WebSockets 连接到界面或那个接口一定要自己写吗?

所以,客户端似乎有多种选择,但是浏览器本身呢?

编辑:这里假设浏览器启动时 --remote-debugging-port=... 设置为一个有意义的值。

不直接。据我所知,远程调试接口只有在启动时使用 --remote-debugging-port= 命令行标志明确启用时才可用。在 运行 时间似乎没有任何方法可以激活它;即使是,您也无法从网页访问它。

请记住,Brackets 是一个基于 Chrome 的独立应用程序;它 运行 不是一个网站。因此,它可以做一些在浏览器中做不到的事情。

现在,综上所述,如果您小心的话,可能有一种方法可以提供一些错误报告和调试功能。特别是,如果您可以将代码注入 iframe,则可以将事件处理程序附加到 the global onerror event to catch exceptions. You may need to use some special tricks to pass events from the frame to the parent page — Window.postMessage may be helpful here — 但这至少应该让您入门。