console.log
输出窗口;此特定页面将是一些JavaScript单元测试的输出。)
我正在对这个问题设置赏金,因为显然没有人得到了令人满意的答案,而且答案很棘手。除非你有一个真正的答案,同时满足以下两个条件,否则请不要回答:1)在两种浏览器中都有效,2)不需要私有扩展API,这些API无法从静态网页中使用。
参见(相关但特定于Chrome和扩展程序):我可以通过Google Chrome扩展程序以编程方式打开devtools吗?
console.log
输出窗口;此特定页面将是一些JavaScript单元测试的输出。)
简单来说:你不能。
开发工具并没有沙盒化(与任何网页不同),因此赋予沙盒化环境打开和控制非沙盒化环境的能力是一个重大安全设计缺陷。
我希望这回答了你的问题 :-)
您不能直接从网页中使用Chrome的开发者工具,因为它与浏览器捆绑在一起。
但是,您可以像常规Web应用程序一样使用它。前往Chrome开发者工具,然后转到Contributing。您将找到有关如何为您的应用程序使用Dev Tools的帮助。
http:// localhost:9222
。在缩略图中,您将看到来自其他浏览器实例的示例页面。单击它以开始远程调试您的示例页面。我希望这是您所需的内容。
除了通过提供主要是日志记录功能的控制台API之外,页面脚本无法控制Web开发工具。任何让脚本控制更多内容的尝试都将是一项严重的安全问题,因为它将允许网页控制浏览器的部分功能。
唯一与您尝试做的事情相关的API是debugger
命令,它只在开发工具已经打开的情况下切换到脚本面板。
但是,您要为谁开发此功能?
如果是为正在开发该站点的开发人员服务,则最好只使用现有的开发人员工具手动设置断点或切换异常暂停。
如果是为最终用户而设计,请不要这样做。除非您的网站是专门为高技术Web开发人员设计的,否则如果开发人员工具突然弹出错误,您只会吓跑用户。
如果您真的想显示错误,可以使用基本JS实现自己的日志框架和错误报告UI,而不依赖于特定的浏览器环境。
这里有另一个答案,提出了一个解决方案以应对您所提到的使用情况/目标(检测错误、获取和显示控制台日志),而不是标题中所述的不可能实现的目标。
您可以创建并使用一个控制台包装器,并在您的代码中使用它 和/或者如果您使用/导入外部JS,则可以 monkey patch控制台函数,但您需要在加载它们之前应用它。
很不喜欢回答这么老的问题,但惊讶地没有看到这个作为答案,所以我想在这里添加一下,以防将来有人需要。
假设您可以访问源代码,您可以在您感兴趣的第一行代码之前立即放置一个alert("open devtools");
语句。此警报将为您提供打开DevTools并在清除警报之前在该第一行上设置断点的机会,从而允许代码继续运行并触发断点。