所以iOS6出来了,哎呀。现在,苹果似乎已经删除了曾经存在于 Safari 中的“开发者控制台”。太好了,我听到很多人说 - 它是有限的。
但是,它可以在设备上运行 - 现在显然您必须将设备连接到 Mac 才能获得网络检查器?
这是用控制台调试的唯一方法吗?有没有办法用windows、safari进行调试?请注意,我的意思不仅仅是更改用户代理,您可以在 Safari Windows 上执行此操作 - 不会注册触摸事件 - 只需单击即可。
如果您没有 Mac OSX,您可以使用此脚本作为控制台替换:
https://github.com/robotnic/waterbug
它显示错误消息,可以记录各种变量,您必须将 iPhone 或 iPad 向右旋转 90° 才能打开控制台。
一个可怜的人调试控制台:
try {
var test = document.do.something();
}
catch (exc) {
alert(exc);
}
可以使用小书签在设备上进行调试(尤其是在 Mobile Safari 中)。
如果错误仅在设备上实时显示,而在其他任何地方都没有,则在设备上进行调试可能非常重要。有多种书签供开发人员使用,因此请选择您喜欢的工具(例如 Firebug Lite),将其添加到您的书签中,并在您需要的地方使用它。这可能不是开发者控制台,但它是一种调试更准确和面向工作的方法。
我在我的博客上写了一篇关于如何使用书签的博文(还有其他常用测试工具和更多书签的列表):
更新:Chrome 发布了它的 Mobile DevTools,这将使调试(在 Google Chome Mobile 内,仅限 Android 设备)变得更加容易。这不会修复 Safari 中缺少的 DevTools 问题,但它可能有助于定位设备上的错误:
UPDATE2:Mozilla 发布了一个 Firefox 插件,以支持跨浏览器和设备的 Web 开发:http://youtu.be/kEFbQwB81RE?t= 1m58s
来看看文莱。它允许您使用类似 Chrome 的网络检查器从另一台计算机检查在 Safari 中运行的页面
您可以window.onerror
在没有控制台的情况下使用调试错误。只需将此代码添加到您自己的<script>
标记中的 HTML 文档中,然后再添加任何其他 Javascript 代码:
<script type="text/javascript">
window.onerror = function(e){
alert(e);
};
</script>
这样一来,每当出现错误时,错误消息都会显示在一个alert
对话框中,该对话框在 iOS Safari 中可见。上面的代码在您尝试调试的错误之前运行很重要,如果您正在调试语法错误,那么它在单独的<script>
标记中也很重要。
除了 Windows 上的 Safari,您还可以使用 Telerik 开发的名为 AppBuilder 的应用程序。我在这个博客上找到了说明。不过,您需要获得一个帐户才能使用 Telerik 平台。
这将为您提供类似于 Safari 中的开发工具。我已经在 Win7 64 位上使用了它,并在带有 iOS 7.1 的 iPad 上运行了常规 Web 应用程序和 Phonegap 应用程序。
就像 neno 建议的那样,Telerik AppBuilder 是一个很棒的应用程序。实际上,我在 Linux 上的虚拟机中运行 Windows XP 只是为了调试我的 iPhone。Windows XP,因为在我的情况下,Windows 7 确实识别了 iPhone,但 iTunes 和 Telerik AppBuilder 没有。
看起来内置控制台不见了。我尝试插入 Windows 7 并打开 Safari,但找不到开发者控制台。然后我读了这篇文章,证实了这一点。
如果您需要能够在两个方向上测试您的站点,那么 waterbug 不是一个好的选择,因为它会用完其控制台视图的横向方向。
一种不错的选择是使用Adobe Edge Inspect。您在 Chrome 上打开您的网站并在您的设备上打开该应用程序,您的设备将镜像您在桌面上打开的任何页面。然后,您可以使用 Chrome 开发工具来调试您的内容。