如何用IE 8debuggingJavascript
我们如何用IE 8debuggingJavaScript?
更新到IE 8后,使用Visual Studio的JavaScript debbug不起作用。
今天我发现,现在我们可以debuggingJavascript与IE 8中集成的开发工具栏插件。
- 单击工具栏上的“工具”,在选项卡右侧。
- select开发者工具 。 开发工具对话框应该打开。
- 点击对话框中的脚本标签。
- 单击开始debuggingbutton。
您可以使用watch,breakpoint,看到调用堆栈等,类似于专业浏览器中的debugging器。
你也可以使用语句debugger;
在你的JavaScript代码中设置一个断点。
您可以通过开发人员工具获取有关IE8 Developer Toolbar在debuggingJScript或debugging脚本中的更多信息。
这不会帮助您逐步完成代码或中断错误,但是这是在所有浏览器上为您的项目获取相同debugging控制台的有用方法。
myLog = function() { if (!myLog._div) { myLog.createDiv(); } var logEntry = document.createElement('span'); for (var i=0; i < arguments.length; i++) { logEntry.innerHTML += myLog.toJson(arguments[i]) + '<br />'; } logEntry.innerHTML += '<br />'; myLog._div.appendChild(logEntry); } myLog.createDiv = function() { myLog._div = document.body.appendChild(document.createElement('div')); var props = { position:'absolute', top:'10px', right:'10px', background:'#333', border:'5px solid #333', color: 'white', width: '400px', height: '300px', overflow: 'auto', fontFamily: 'courier new', fontSize: '11px', whiteSpace: 'nowrap' } for (var key in props) { myLog._div.style[key] = props[key]; } } myLog.toJSON = function(obj) { if (typeof window.uneval == 'function') { return uneval(obj); } if (typeof obj == 'object') { if (!obj) { return 'null'; } var list = []; if (obj instanceof Array) { for (var i=0;i < obj.length;i++) { list.push(this.toJson(obj[i])); } return '[' + list.join(',') + ']'; } else { for (var prop in obj) { list.push('"' + prop + '":' + this.toJson(obj[prop])); } return '{' + list.join(',') + '}'; } } else if (typeof obj == 'string') { return '"' + obj.replace(/(["'])/g, '\\$1') + '"'; } else { return new String(obj); } } myLog('log statement'); myLog('logging an object', { name: 'Marcus', likes: 'js' });
这是很匆忙地放在一起,是有点马虎,但它是有用的,但可以轻松地改善!
我希望把这个添加到Marcus Westin的回复中,但我找不到链接 – 也许我需要更多的声誉?
无论如何,谢谢,我发现这个代码片段在IE中快速debugging有用。 我已经做了一些快速的调整,以解决停止它为我工作的问题,也自动向下滚动,并使用固定的位置,所以它会出现在视窗中。 这是我的版本,以防有人发现它有用:
myLog = function() { var _div = null; this.toJson = function(obj) { if (typeof window.uneval == 'function') { return uneval(obj); } if (typeof obj == 'object') { if (!obj) { return 'null'; } var list = []; if (obj instanceof Array) { for (var i=0;i < obj.length;i++) { list.push(this.toJson(obj[i])); } return '[' + list.join(',') + ']'; } else { for (var prop in obj) { list.push('"' + prop + '":' + this.toJson(obj[prop])); } return '{' + list.join(',') + '}'; } } else if (typeof obj == 'string') { return '"' + obj.replace(/(["'])/g, '\\$1') + '"'; } else { return new String(obj); } }; this.createDiv = function() { myLog._div = document.body.appendChild(document.createElement('div')); var props = { position:'fixed', top:'10px', right:'10px', background:'#333', border:'5px solid #333', color: 'white', width: '400px', height: '300px', overflow: 'auto', fontFamily: 'courier new', fontSize: '11px', whiteSpace: 'nowrap' } for (var key in props) { myLog._div.style[key] = props[key]; } }; if (!myLog._div) { this.createDiv(); } var logEntry = document.createElement('span'); for (var i=0; i < arguments.length; i++) { logEntry.innerHTML += this.toJson(arguments[i]) + '<br />'; } logEntry.innerHTML += '<br />'; myLog._div.appendChild(logEntry); // Scroll automatically to the bottom myLog._div.scrollTop = myLog._div.scrollHeight; }