console.log()在Safari 6.0 Web Inspector中不起作用

时间:2012-08-18 03:16:44

标签: javascript safari6

console.log('hi');

undefined

6.0中是否有类似的实现?或者我做错了什么?

6 个答案:

答案 0 :(得分:19)

我发现了问题!日志不会出现在交互式控制台(位于底部),而是出现在“当前日志”窗口中!您可以通过Develop > Show Error Console或Web Inspector中最右侧的源图标访问它。

太奇怪了!是否很难在控制台中获得简单的输出,例如Ruby中的putsprint

答案 1 :(得分:17)

确保您在控制台窗口顶部选择“全部”。有时它会自动切换到仅显示错误,警告或日志。如果您选择“全部”,那么您应该会看到所有console.log() s!

enter image description here

答案 2 :(得分:4)

我必须开发“for Safari”作为我的主要目标,但由于Chrome和Safari都使用WebKit作为引擎,因此它们的执行几乎完全相同(一个区别是Safari将日期字符串解析为日期更差)。

因此,只要您在检查代码之前在Safari中进行最终的健全性检查,Chrome中的调试和开发通常就足够了。

话虽这么说,我写了一个控制台包装器,让我能够在任何浏览器中调用console.log ...如果它支持console.log,那么它只是工作...否则它会记录消息一个可以检查的数组。

//======================================================//
// multi browser compatibility - not all support console
//======================================================//
var dummyConsole = [];
var console = console || {};
if (!console.log) {
    console.log = function (message) {
        dummyConsole.push(message);
    }
}

答案 3 :(得分:2)

不是首选,但它有效。

console.error(message);

注意:我正在运行包含手表的gulp serve -d -w。即便如此,在重新开始gulp之前我还是看不到消息。

答案 4 :(得分:2)

我最近碰到了这篇文章,因为我在Safari 14中遇到了类似的问题。我将语法用于Safari,它创建了另一个发送请求的框架。其他扩展也可能会发生这种情况。

默认情况下,Safari应该选择正确的框架,但如果未选择正确的框架,则不会看到控制台日志。如果发生这种情况,控制台窗口的右下角会出现一个下拉列表。如果选择网站框架,日志将开始显示。

Image of dropdown

答案 5 :(得分:1)

如果您正在使用JQuery,我会动态地向页面添加一个输出字段,以便我可以看到JavaScript值。 z-index是保持在顶部。无论你想要它的风格。我通常添加彩色边框或明亮的背景颜色,因此很容易在屏幕上找到。

var output= 'hello';
$('body').append("<div style='width:50px;z-index:1000'>" + output + "</div>");