【问题标题】:Is it possible to use Chrome Remote Debugging Protocol from inside the webpage?是否可以从网页内部使用 Chrome 远程调试协议?
【发布时间】:2015-07-24 00:01:01
【问题描述】:

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

目的是测试使用ACE编辑器或类似编辑器在HTML页面内创建的JavaScript代码,以允许用户在页面内运行代码sn-p,然后将结果返回给调用页面。例如,代码可能在 IFRAME 中运行。

至少http://brackets.io/ 据说是 “Brackets 是一个基于 Web 的 IDE,它使用 Chrome 调试协议来启用调试和实时 HTML/CSS 开发。”——这让我想知道,是有客户端JS API供浏览器使用WebSockets连接到接口还是你必须自己编写那个接口?

那么,客户端似乎有几种选择,但是浏览器本身呢?

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

【问题讨论】:

    标签: javascript google-chrome debugging


    【解决方案1】:

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

    请记住,Brackets 是基于 Chrome 的独立应用程序;它不作为网站运行。因此,它可以完成一些浏览器无法完成的事情。

    现在,综上所述,如果您小心的话,可能有一种方法可以提供一些错误报告和调试功能。特别是,如果您可以将代码注入 iframe,则可以将事件处理程序附加到 the global onerror event 以捕获异常。您可能需要使用一些特殊技巧将事件从框架传递到父页面 - Window.postMessage may be helpful here  - 但这至少可以帮助您入门。

    【讨论】:

    • 谢谢,我假设浏览器是在启用 --remote-debugging-port= ... 的情况下启动的,但我想知道是否有客户端 API 可以使用 websocket 连接到它,或者是否还有一些其他协议使用控制台...对象
    • 不,没有。调试接口绑定到localhost,因此它与您访问的任何网站都不同,因此无法访问。
    • 哦,是的,这确实是一个可怕的安全漏洞。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 2016-01-14
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2018-04-16
    相关资源
    最近更新 更多