📄 console.js
字号:
if (Object.type(parameters[0], InspectorController.inspectedWindow()) === "string") { var formatters = {} for (var i in String.standardFormatters) formatters[i] = String.standardFormatters[i]; // Firebug uses %o for formatting objects. formatters.o = formatForConsole; // Firebug allows both %i and %d for formatting integers. formatters.i = formatters.d; // Support %O to force object formating, instead of the type-based %o formatting. formatters.O = formatAsObjectForConsole; function append(a, b) { if (!(b instanceof Node)) a.appendChild(WebInspector.linkifyStringAsFragment(b.toString())); else a.appendChild(b); return a; } var result = String.format(parameters[0], parameters.slice(1), formatters, formattedResult, append); formattedResult = result.formattedResult; parameters = result.unusedSubstitutions; if (parameters.length) formattedResult.appendChild(document.createTextNode(" ")); } for (var i = 0; i < parameters.length; ++i) { if (typeof parameters[i] === "string") formattedResult.appendChild(WebInspector.linkifyStringAsFragment(parameters[i])); else formattedResult.appendChild(formatForConsole(parameters[i])); if (i < parameters.length - 1) formattedResult.appendChild(document.createTextNode(" ")); } return formattedResult; }, toMessageElement: function() { if (this.propertiesSection) return this.propertiesSection.element; var element = document.createElement("div"); element.message = this; element.className = "console-message"; switch (this.source) { case WebInspector.ConsoleMessage.MessageSource.HTML: element.addStyleClass("console-html-source"); break; case WebInspector.ConsoleMessage.MessageSource.WML: element.addStyleClass("console-wml-source"); break; case WebInspector.ConsoleMessage.MessageSource.XML: element.addStyleClass("console-xml-source"); break; case WebInspector.ConsoleMessage.MessageSource.JS: element.addStyleClass("console-js-source"); break; case WebInspector.ConsoleMessage.MessageSource.CSS: element.addStyleClass("console-css-source"); break; case WebInspector.ConsoleMessage.MessageSource.Other: element.addStyleClass("console-other-source"); break; } switch (this.level) { case WebInspector.ConsoleMessage.MessageLevel.Tip: element.addStyleClass("console-tip-level"); break; case WebInspector.ConsoleMessage.MessageLevel.Log: element.addStyleClass("console-log-level"); break; case WebInspector.ConsoleMessage.MessageLevel.Warning: element.addStyleClass("console-warning-level"); break; case WebInspector.ConsoleMessage.MessageLevel.Error: element.addStyleClass("console-error-level"); break; case WebInspector.ConsoleMessage.MessageLevel.StartGroup: element.addStyleClass("console-group-title-level"); } if (this.elementsTreeOutline) { element.addStyleClass("outline-disclosure"); element.appendChild(this.elementsTreeOutline.element); return element; } if (this.repeatCount > 1) { var messageRepeatCountElement = document.createElement("span"); messageRepeatCountElement.className = "bubble"; messageRepeatCountElement.textContent = this.repeatCount; element.appendChild(messageRepeatCountElement); element.addStyleClass("repeated-message"); } if (this.url && this.url !== "undefined") { var urlElement = document.createElement("a"); urlElement.className = "console-message-url webkit-html-resource-link"; urlElement.href = this.url; urlElement.lineNumber = this.line; if (this.source === WebInspector.ConsoleMessage.MessageSource.JS) urlElement.preferredPanel = "scripts"; if (this.line > 0) urlElement.textContent = WebInspector.displayNameForURL(this.url) + ":" + this.line; else urlElement.textContent = WebInspector.displayNameForURL(this.url); element.appendChild(urlElement); } var messageTextElement = document.createElement("span"); messageTextElement.className = "console-message-text"; messageTextElement.appendChild(this.formattedMessage); element.appendChild(messageTextElement); return element; }, toString: function() { var sourceString; switch (this.source) { case WebInspector.ConsoleMessage.MessageSource.HTML: sourceString = "HTML"; break; case WebInspector.ConsoleMessage.MessageSource.WML: sourceString = "WML"; break; case WebInspector.ConsoleMessage.MessageSource.XML: sourceString = "XML"; break; case WebInspector.ConsoleMessage.MessageSource.JS: sourceString = "JS"; break; case WebInspector.ConsoleMessage.MessageSource.CSS: sourceString = "CSS"; break; case WebInspector.ConsoleMessage.MessageSource.Other: sourceString = "Other"; break; } var levelString; switch (this.level) { case WebInspector.ConsoleMessage.MessageLevel.Tip: levelString = "Tip"; break; case WebInspector.ConsoleMessage.MessageLevel.Log: levelString = "Log"; break; case WebInspector.ConsoleMessage.MessageLevel.Warning: levelString = "Warning"; break; case WebInspector.ConsoleMessage.MessageLevel.Error: levelString = "Error"; break; case WebInspector.ConsoleMessage.MessageLevel.Object: levelString = "Object"; break; case WebInspector.ConsoleMessage.MessageLevel.Trace: levelString = "Trace"; break; case WebInspector.ConsoleMessage.MessageLevel.StartGroup: levelString = "Start Group"; break; case WebInspector.ConsoleMessage.MessageLevel.EndGroup: levelString = "End Group"; break; } return sourceString + " " + levelString + ": " + this.formattedMessage.textContent + "\n" + this.url + " line " + this.line; }, isEqual: function(msg, disreguardGroup) { if (!msg) return false; var ret = (this.source == msg.source) && (this.level == msg.level) && (this.line == msg.line) && (this.url == msg.url) && (this.message == msg.message); return (disreguardGroup ? ret : (ret && (this.groupLevel == msg.groupLevel))); }}// Note: Keep these constants in sync with the ones in Console.hWebInspector.ConsoleMessage.MessageSource = { HTML: 0, WML: 1, XML: 2, JS: 3, CSS: 4, Other: 5}WebInspector.ConsoleMessage.MessageLevel = { Tip: 0, Log: 1, Warning: 2, Error: 3, Object: 4, Trace: 5, StartGroup: 6, EndGroup: 7}WebInspector.ConsoleCommand = function(command){ this.command = command;}WebInspector.ConsoleCommand.prototype = { toMessageElement: function() { var element = document.createElement("div"); element.command = this; element.className = "console-user-command"; var commandTextElement = document.createElement("span"); commandTextElement.className = "console-message-text"; commandTextElement.textContent = this.command; element.appendChild(commandTextElement); return element; }}WebInspector.ConsoleCommandResult = function(result, exception, originatingCommand){ var level = (exception ? WebInspector.ConsoleMessage.MessageLevel.Error : WebInspector.ConsoleMessage.MessageLevel.Log); var message = (exception ? String(result) : result); var line = (exception ? result.line : -1); var url = (exception ? result.sourceURL : null); WebInspector.ConsoleMessage.call(this, WebInspector.ConsoleMessage.MessageSource.JS, level, line, url, null, 1, message); this.originatingCommand = originatingCommand;}WebInspector.ConsoleCommandResult.prototype = { toMessageElement: function() { var element = WebInspector.ConsoleMessage.prototype.toMessageElement.call(this); element.addStyleClass("console-user-command-result"); return element; }}WebInspector.ConsoleCommandResult.prototype.__proto__ = WebInspector.ConsoleMessage.prototype;WebInspector.ConsoleGroup = function(parentGroup, level){ this.parentGroup = parentGroup; this.level = level; var element = document.createElement("div"); element.className = "console-group"; element.group = this; this.element = element; var messagesElement = document.createElement("div"); messagesElement.className = "console-group-messages"; element.appendChild(messagesElement); this.messagesElement = messagesElement;}WebInspector.ConsoleGroup.prototype = { addMessage: function(msg) { var element = msg.toMessageElement(); if (msg.level === WebInspector.ConsoleMessage.MessageLevel.StartGroup) { this.messagesElement.parentNode.insertBefore(element, this.messagesElement); element.addEventListener("click", this._titleClicked.bind(this), true); } else this.messagesElement.appendChild(element); if (element.previousSibling && msg.originatingCommand && element.previousSibling.command === msg.originatingCommand) element.previousSibling.addStyleClass("console-adjacent-user-command-result"); }, _titleClicked: function(event) { var groupTitleElement = event.target.enclosingNodeOrSelfWithClass("console-group-title-level"); if (groupTitleElement) { var groupElement = groupTitleElement.enclosingNodeOrSelfWithClass("console-group"); if (groupElement) if (groupElement.hasStyleClass("collapsed")) groupElement.removeStyleClass("collapsed"); else groupElement.addStyleClass("collapsed"); groupTitleElement.scrollIntoViewIfNeeded(true); } event.stopPropagation(); event.preventDefault(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -