Я пишу игру, и у меня есть консоль для разработчиков для взаимодействия с методами JavaScript в игре. У меня есть проблема хотя; я не могу выяснить, как отбросить ошибки JavaScript к консоли. Существует ли так или иначе к ошибкам при записи к элементу HTML или отделению?
Похоже, у вас уже есть возможность запускать JS в рабочем состоянии, и вам просто нужно фиксировать вывод ошибок? Если это так, вы должны иметь возможность сделать это, заключив свой исполняемый код в блок try ... catch
:
var result;
try {
result = eval($("#console-input").val());
} catch (ex) {
if (ex !== null && typeof ex !== "undefined") {
if (ex.message) ex = ex.message;
} else {
ex = "An unknown error occurred.";
}
result = ex;
}
$("#console-output").append($("<p/>").text(result));
$("#console-input").val("");
Это добавит результат кода в выходной div, если ошибки не возникнет. Если ошибка действительно возникает , вместо этого будет выведено либо сообщение об ошибке (если есть), либо «Произошла неизвестная ошибка».
konsole = document.createElement('ul');
konsole.id = 'console';
document.getElementsByTagName('body')[0].appendChild(konsole);
function log(konsole, message, level)
{
if (undefined === level) level = 0;
messageElem = document.createElement('li');
messageElem.className = 'level-' + level;
messageElem.innerHTML = message;
konsole.appendChild(messageElem);
};
document.getElementById('console')
log(document.getElementById('console'), ': )');
Тогда речь идет только о CSS ...
Пользовательские ошибки JavaScript выводятся с помощью команды throw. Если вы хотите ввести эти ошибки в div, используйте метод innerHTML вместо throw и немедленно вернитесь из выполняющейся функции.