Как мы можем отлаживать JavaScript с помощью IE 8?
Отладка JavaScript с помощью Visual Studio не работает после обновления до IE 8.
Как мы можем отлаживать JavaScript с помощью IE 8?
Отладка JavaScript с помощью Visual Studio не работает после обновления до IE 8.
Сегодня я обнаружил, что теперь мы можем отлаживать Javascript с помощью плагинов панели инструментов разработчика, интегрированных в IE 8.
Вы можете использовать часы, точку останова, просматривать стек вызовов и т. Д., Аналогично отладчикам в профессиональных браузерах.
Вы также можете использовать оператор debugger;
в своем коде JavaScript для установки точки останова.
Дополнительную информацию об отладке панели инструментов разработчика IE8 можно найти на странице Отладка JScript или Сценарий отладки с помощью инструментов разработчика.
Это не поможет вам выполнить код или прервать работу при ошибках, но это полезный способ получить одну и ту же консоль отладки для вашего проекта во всех браузерах.
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' });
Это сделано довольно поспешно и немного небрежно, но, тем не менее, полезно и может быть легко улучшено!
Я надеялся добавить это в качестве комментария к ответу Маркуса Вестина, но не могу найти ссылку - может мне нужно больше репутации?
В любом случае, спасибо, я нашел этот фрагмент кода полезным для быстрой отладки в IE. Я сделал несколько быстрых настроек, чтобы исправить проблему, из-за которой он у меня перестал работать, а также для автоматической прокрутки вниз и использования фиксированного позиционирования, чтобы оно отображалось в области просмотра. Вот моя версия на тот случай, если кто-то сочтет ее полезной:
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;
}
myLog('i want to see this', fooObject);
. Я думаю, вам это не нужно с IE8, потому что, пока у вас открыты инструменты разработчика, вы можете использовать console.log, пошаговую отладку и т. Д. Но если вам нужно отлаживать даже старые браузеры, возможно, это может помощь. К счастью, мне самому давно не приходилось этим пользоваться!
- person poshaughnessy; 08.07.2016