1

有人告诉我,使用 console.log() 方法后,我不需要警报框并准备了一些代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
function cool()
{console.log("Message");}</script>
</head>

<body onload="cool();">
</body>
</html>

但它并没有像警告框那样让 JavaScript 停止运行。它还将“消息”写入 Firebug 窗口。

  • 它如何在没有 Firebug 的客户端浏览器上工作?

  • 它是否适用于使用相同语法的所有浏览器?

  • 它只是为了 Web 开发目的而制作的吗?

4

3 回答 3

2

它如何在没有 firebog 的客户端浏览器上工作。

它不起作用 :-) 实际上 FireBug 不是必需的。例如,现代浏览器(例如 Google Chrome)已经console.log实现了该方法,并且输出进入了它们的控制台。对于旧版浏览器,它不起作用,因为未定义此方法。

它只是为了网络开发目的而制作的吗?

是的,主要用于调试。

于 2012-05-12T10:03:21.620 回答
2

有一些浏览器,比如 IE7,没有定义一些控制台方法。如果您经常使用 console.debug、console.info 和其他在 IE7 和其他浏览器中可能不可用的方法,您可以通过在页面上运行任何其他 JavaScript 之前粘贴此代码来处理这种情况:

// override loggers to avoid throwing errors
if(window.console == null || window.console == undefined || !window.console) {
           console = { log: function() {}, info: function() {}, warn: function() {}, error: function() {}, trace: function() {}, debug: function() {} };
           var fbscript = document.createElement("script");
           fbscript.src = "https://getfirebug.com/firebug-lite-beta.js";
           fbscript.setAttribute("type","text/javascript");
           document.getElementsByTagName("head")[0].appendChild(fbscript);
} else if(!console.debug) {
         console.debug = function(text) { if(console.log) console.log("D: "+text); };
}

这首先检查 window.console 是否为 null 或未定义。如果是,那么它将console、console.log、console.info等定义为空函数。这可以防止它们在不支持它们的浏览器中导致错误,并且可以防止您在代码中存在错误或其他问题时不必要地删除原本非常有用的面包屑。

这样做的另一件事是在找不到控制台时输入 Firebug Lite。这在没有本机调试器的浏览器中非常有用。

控制台日志语句优于警报的优点是日志语句不会停止代码的执行。在测试同时触发多个事件的功能或调试代码时,在代码中包含警报可能会掩盖一些未知错误,这些错误可能是您在即将部署和删除警报时才发现的,或者更糟糕的是,它们没有得到直到代码投入生产后才被发现。

就观众而言,我不认识太多了解 Firebug 或 Chrome 调试器的非技术人员。因此,Web 开发人员似乎确实是这些功能的预期目标。这并不是说它们不能用于其他功能。例如,当我在线观看视频时,我使用 chrome 调试器来删除烦人的侧边栏广告。

于 2012-05-12T10:12:48.757 回答
1

记录消息就是这样做的。

它如何在没有 firebog 的客户端浏览器上工作。

它输出到浏览器定义的任何 javascript 控制台。FireBug 会拦截它,但不是必需的。

它是否适用于所有具有相同语法的浏览器?

是的。

它只是为了网络开发目的而制作的吗?

用于调试javascript。

于 2012-05-12T10:04:05.377 回答