我正在寻找一种方法来打开WebKit的“开发者工具”从一个脚本附加到一个网页。我需要的解决方案,谷歌浏览器和Safari浏览器,这将打开开发者工具窗格,如果它还没有打开,并(希望,如果你能弄清楚如何)也切换到一个特定的标签/部分说,窗格打开。
(使用情形,如果有人感兴趣:如果出现错误并且开发人员正在查看页面,我希望打开console.log
输出窗口;这个特定的页面将是一些JavaScript单元测试的输出。)
我悬赏这个问题是因为它显然是一个没有人满意的答案之前,答案是一个毛茸茸的。请不要回答它,除非你有一个 * 真实的的答案 *,这两个:1)适用于 * 两种浏览器 *,2)不需要在静态网页上无法工作的私有扩展API。
请参阅(相关,但特定于Chrome和扩展程序):Can I programmatically open the devtools from a Google Chrome extension?
6条答案
按热度按时间rvpgvaaj1#
简单地说:* 你不能 *。
开发工具不是沙盒(与任何网页不同),因此授予沙盒环境打开和控制非沙盒环境的能力是重大安全设计缺陷。
我希望这能回答你的问题:-)
icomxhvb2#
您不能直接从您的网页使用Chrome开发工具,它与浏览器捆绑在一起。
但是你可以像普通的网络应用程序一样使用它。进入Chrome开发者工具,然后进入Contributing。你会找到关于为你的应用程序使用开发者工具的帮助。
设置
奔跑
http://localhost:9222
.在缩略图中你会看到来自另一个浏览器示例的示例页面.点击它开始远程调试你的示例页面.希望这是你需要的。
pqwbnv8z3#
除了Console API提供的日志记录功能外,没有办法从页面内脚本控制web开发工具,让脚本控制更多的功能将是一个严重的安全问题,因为它将允许网页控制浏览器的一部分。
唯一与您要做的事情有一定关系的API是
debugger
命令,只有在开发人员工具已经打开的情况下,它才会切换到脚本窗格。但是你想为谁开发这个功能呢?
如果是为在网站上工作的开发人员准备的,那么最好手动使用现有的开发人员工具,通过设置断点,或者 * 在异常时暂停 * 切换。
如果是针对最终用户,不要,除非你的网站是由高技术的网络开发人员使用的,否则如果开发人员工具突然弹出错误,你只会吓跑用户。
如果你真的想显示错误,你可以实现你自己的日志框架和错误报告的UI,它与基本的JS一起工作,不依赖于特定的浏览器环境。
s5a0g9ez4#
这里有另一个答案,它针对你提到的用例/目标(检测错误,获取和显示控制台日志)提出了一个解决方案,而不是标题中不可能的目标。
你可以制作和使用一个控制台 Package 器,并在你的代码中使用它,和/或如果你使用/import外部js,你可以canmonkey patch控制台函数,但是你需要在加载它们之前应用它。
ni65a41a5#
不,任何安全的浏览器都不允许脚本打开扩展,因为这会导致不安全。
但是,您可以设计一个附加组件/扩展或控制台API的做同样的..为特定的网站.
创建this之类的附加组件来满足该要求。
您可以尝试发送键'CTRL' + SHIFT' + 'I',可能适用于Chrome任何FireFox(在IE中,您需要使用'F12'
我使用它时,需要在这个附加组件使用很少的实用程序,以更好地工作,然后内置。
编辑:现在一天Chrome是先进的许多新的进步source。
希望这能有所帮助!
ztmd8pv56#
讨厌回答这样一个老问题,但很惊讶没有看到这是一个答案,所以我想我会添加它的情况下,它可以帮助别人在未来。
假设您可以访问源代码,您可以将
alert("open devtools");
语句放在要调试的第一行之前。此警报将给予您有机会打开DevTools并在第一行设置断点,然后清除警报,从而允许代码继续运行并命中断点。